条件运算符不能隐式转换?
我被这个小小的C#怪癖弄糊涂了:
给定变量:
Boolean aBoolValue;Byte aByteValue;
以下是汇编:
if (aBoolValue) aByteValue = 1; else aByteValue = 0;
但这不会:
aByteValue = aBoolValue ? 1 : 0;
错误说:“不能隐式地将‘int’类型转换为‘字节’。”
当然,这个怪物会汇编成:
aByteValue = aBoolValue ? (byte)1 : (byte)0;
这里发生了什么事?
编辑:
使用VS 2008,C#3.5
猛跑小猪
BIG阳
相关分类