【发布时间】:2011-01-14 00:25:07
【问题描述】:
我有点被这个 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
【问题讨论】:
标签: c# types conditional-operator implicit-conversion