我原以为下面的代码会抛出异常,因为我在访问一个可空变量的Value
属性,而该变量被赋值为null
。然而,当我执行以下代码时,却没有抛出任何异常:
int? x=null;
Console.WriteLine(x.Value==null);
但是当我执行以下操作:
Console.WriteLine(x.Value);
正如预期的那样,我遇到了一个异常。
但是访问 x.Value
的这两种方式有什么区别?为什么第一种情况下我没有遇到异常?毕竟,这两段代码都试图访问 x.Value 属性。
注:顺便说一句,我在 www.compileonline.com 网站上运行上述代码。不确定在 Visual Studio 编译器上尝试是否会产生不同的结果,但我目前无法访问 Visual Studio。
谢谢您!