C# is not the same as C or C++!!!!!  Simple byte operations for example do not result in a byte result, they often result in an Int32 result

An example binary operation

This will generat the error “Cannot implicitly convert type ‘int’ to ‘byte’. An explicit conversion exists (are you missing a cast)”:


	TxData[ByteIndex++] = (byte)TagIdCharacter[0] | 0x80;	

Its because the result of the IOR operation does not result in a byte, so you need to use parenthesis:


	TxData[ByteIndex++] = (byte)(TagIdCharacter[0] | 0x80);