C および C++ では、数値の末尾に「l」を付けることで、数値が「long」であることをコンパイラーに伝えることができます。例: long x = 0l;
数値がバイトであることを C# コンパイラに伝えるにはどうすればよいですか?
byte b = (byte) 123;
それでも
byte b = 123;
同じことをします。変数がある場合:
int a = 42;
byte b = (byte) a;
C# 言語仕様によると、バイト リテラルを指定する方法はありません。バイトを取得するには、バイトにキャストする必要があります。あなたの最善の策は、おそらく次のように 16 進数で指定してキャストダウンすることです。
byte b = (byte) 0x10;
その場合は、次のことを覚えておいてください。
byte b = (byte)300;
期待どおりに動作しません。
MSDN は暗黙的な変換を使用します。バイト型のサフィックスは見当たりませんが、明示的なキャストを使用できます。2 桁の 16 進整数 (int) 定数を使用するだけです。
コンパイラに伝える必要はありません。任意の有効な値を byte 変数に割り当てることができ、コンパイラーはそれで問題ありません。byte のサフィックスはありません。
オブジェクトにバイトを格納する場合は、次のようにキャストする必要があります。
object someValue = (byte) 123;