我对这个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。