sum 2数字的问题

时间:2014-06-06 09:53:50

标签: c# linq

当检查null然后加上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

1 个答案:

答案 0 :(得分:4)

原因是你遗漏了括号:

var x = (obj.a??0) + (obj.b??0);

解析器按如下方式处理非括号表达式:

var x = obj.a ?? (0 + obj.b??0);

仅在obj.bobj.a时评估您添加null的部分。当obj.a具有非空值时,将忽略obj.b