当检查null和sum 2数字时,我遇到了一个问题
代码示例
classA obj = new classA{ a = 2, b = 3}
var x = obj.a??0 + obj.b??0
The result x was 2预期为5
请告诉我为什么?这样的操作是怎么做的?
注意:我使用linq来检索obj
发布于 2014-06-06 17:55:50
原因是您漏掉了括号:
var x = (obj.a??0) + (obj.b??0);解析器按如下方式处理不带括号的表达式:
var x = obj.a ?? (0 + obj.b??0);仅当obj.a为null时,才会计算添加obj.b的部分。当obj.a具有非空值时,将忽略obj.b。
https://stackoverflow.com/questions/24078998
复制相似问题