私はこの小さなC#の癖に少し困惑しています:
与えられた変数:
Boolean aBoolValue;
Byte aByteValue;
以下をコンパイルします。
if (aBoolValue)
aByteValue = 1;
else
aByteValue = 0;
しかし、これはしません:
aByteValue = aBoolValue ? 1 : 0;
エラーは次のように述べています:「タイプ'int'を'byte'に暗黙的に変換することはできません。」
そしてもちろん、この怪物はコンパイルされます:
aByteValue = aBoolValue ? (byte)1 : (byte)0;
何が起きてる?
編集:
VS2008、C#3.5を使用