4
bool myBool = true;
byte myByte;
  • この変換が実行されますmyByte = Convert.ToByte(myBool);
  • この変換は実行されませんmyByte = (byte)myBool;

初心者向け( me): 上記が異なるのはなぜですか?

4

1 に答える 1

9

Convert.ToByteはメソッドです-おそらく次の行に沿って、やりたいことは何でもできます。

return input ? (byte) 1 : (byte) 0;

キャストは言語レベルの操作です。言語が変換自体を認識しているか、関連する型の 1 つに適切な入力型と出力型を持つユーザー定義の変換が含まれている必要があります。boolからに変換する場合は、どちらも当てはまりませんbyte

基本的に、言語はそのキャストが何を意味するかを定義していないため、コンパイラはそれを禁止しています。

于 2012-06-18T07:35:26.513 に答える