您能解释一下,为什么Console.WriteLine写空行(Console.WriteLine(null)
给我编译错误),为什么没有NullReferenceException(甚至a+=1
不应该引发它)?
int? a = null;
a++; // Why there is not NullReferenceException?
Console.WriteLine(a); // Empty line
NullReferenceException
?但int?
不是一个Reference
,而是int
可以带来null
价值的
++
,+=
以及+
已解除变种。因此,语句a++;
,a += 1;
和a = a + 1;
都被允许。null
如果a
最初是,则每个农产品(不会引发异常)null
。