使用时出现奇怪错误?操作人员
本文关键字:错误 操作 | 更新日期: 2023-09-27 18:19:45
可能重复:
无法确定条件表达式的类型?
我现在写了这样的声明:
byte? Col_8 = (Rad_8.SelectedValue == null) ? null : byte.Parse(Rad_8.SelectedValue);
但它有这个错误:
无法确定条件表达式的类型,因为
'<null>'
和'byte'
之间没有隐式转换
为什么我可以在?
之后使用null?如果没有if
语句的上述代码等价物会怎样?
编译器无法推断条件语句的类型,因为null
没有类型,也没有考虑预期的返回值。使用
(Rad_8.SelectedValue == null) ? (byte?)null : byte.Parse(Rad_8.SelectedValue);
if(Rad_8.SelectedValue == null)
Col_8 = null;
else
Col_8 = byte.Parse(Rad_8.SelectedValue);
我认为这是因为方法byte.Parse(...)
不返回可为null的类型,因此编译器表示null
-和byte
-类型之间没有隐式转换。尝试使用(byte?)
强制转换null
值以显式指定其类型。