毫无疑问,还有其他也许更好的方法可以做到这一点,但是我试图理解这里发生的事情。
在下面的示例中,coverity在第四行报告了FORWARD_NULL缺陷。
double? foo = null;
double bar = 1.23;
foo += bar;
System.Windows.Point point = new System.Windows.Point(foo,bar);
它报告:
assign_zero:分配:foo = null。
在foo + =条线上。
在+= Operator (C# Reference)中,我看到 x + = y 等效于 x = x + y ,而在Using nullable types (C+ Programming Guide)中,我看到
这些运算符 [二进制运算符] 如果一个或两个操作数是 空
那是怎么回事? foo + = bar变为foo = foo + bar,并且由于foo为空,因此foo + bar为空吗?
答案 0 :(得分:5)
那是怎么回事? foo + = bar变为foo = foo + bar和 因为foo为空,所以foo + bar为空?
是的