我想知道这样的代码是否应该执行GetAnotherValue()
?
int? x1 = null;
var check = x1 <= GetAnotherValue();
我认为这不应该,因为这对我来说听起来更合理。但我不确定这是否得到保证。据我所知,规范没有说明这一点。
编辑:
我发现了更多关于表达式主题的规范文档。不过还不清楚。
似乎提升的运算符将两个操作数都转换为可空等效项,然后检查空值并在需要时调用原始运算符。
这意味着我的GetAnotherValue()
方法将被执行,以生成int?
提升比较的第二个值。我对这种解释是否正确?