【发布时间】:2015-03-10 07:58:54
【问题描述】:
有什么问题
public int Add(int? a, int? b)
{
return (a?.0 + b?.0);
}
编译错误:无法隐式转换类型“int?”到“布尔”
只是尝试以 C#6.0 的方式添加两个可为空的整数。
我也知道其他方式(如 hasvalue 等),但我正在尝试使用这个新运算符。
【问题讨论】:
-
空条件运算符是
??(尽管对于可空类型只有?)。?已用于三元运算符。 -
错误信息很有趣...为什么它试图将值转换为
bool? -
这个方法的正确实现应该是
return a ?? 0 + b ?? 0。 -
@DarrenYoung 感谢您直截了当地命名。我仍然喜欢将其视为有条件的。无论如何,问题的代码片段仍然是错误的;-)