2

実行することで、具体的にフロートに値を割り当てることができることを知っています

float y = 4.5f;

バイトとして以外は、同じことをしたいです。どうすればいいですか?MSDN のドキュメントを確認しましたが、これに関連するものは見つかりません。また、これを何といいますか。

ありがとう、

[編集]

明確にするために、私がこれを使用しているコードは

byte myByte = a==b?1:0;

そして、私が得るエラーは

タイプ 'int' を 'byte?' に暗黙的に変換することはできません。明示的な変換が存在します (キャストがありませんか?)

解決

byte myByte = (byte)(a==b?1:0);
4

5 に答える 5

13

byte、およびデータ型sbyteには指定された接尾辞がありません。ただし、整数リテラルはこれらのデータ型の変数に割り当てることができ、値が変数に格納するのに適切であると仮定して、暗黙的に変換されます。念のため、C# で定義されているリテラルを次に示します。shortushort

uint: U or u
long: L or l
ulong: UL or ul
float: F or f
decimal: M or m
于 2009-05-25T16:44:12.483 に答える
2

キャストを使うだけです。

// Okay
Byte data = (Byte) 57;

// Error (but I don't know if it is a compiler error or a runtime error)
Byte data = (Byte) -17;

または定数を導入します。

// Okay
const Byte foo = 57;
Byte data = foo;

// Compiler Error
const Byte foo = -17;
Byte data = foo;
于 2009-05-25T16:50:09.637 に答える
2

この投稿によると、byteにはそのような接尾辞はありません。

于 2009-05-25T16:51:32.850 に答える
2

バイトを定義するときに接尾辞は必要ありません。

   byte b = 1;

値が0から255の間であることを確認する必要があります。

MSDNは、Fの使用を「サフィックス」と呼び、リテラルタイプを強制します。

詳細については、 C-sharpOnlineの次の記事を参照してください。

于 2009-05-25T16:52:40.743 に答える
1

16 進数表記:

バイト b = 0xff;

于 2009-05-25T16:46:21.983 に答える