请考虑以下代码:
DateTime? ndate = null;
Console.WriteLine(ndate.HasValue);
Run Code Online (Sandbox Code Playgroud)
我原本期望一个NullReferenceException,但HasValue确实会返回false.但是,由于ndate为null,属性调用如何成功,因为没有对象可以调用属性HasValue?
我有点不清楚在Value获取可空类型中包含的值时何时/是否必须使用可空类型的属性.请考虑以下示例:
int? x = 10;
Console.WriteLine("The value of 'x' is " + x.Value);
Console.WriteLine("The value of 'x' is " + x);
Run Code Online (Sandbox Code Playgroud)
这两个都返回相同的值(10).
但是,如果我最初设置x为null,则第一个Console.WriteLine抛出异常而第二个抛出异常.
所以,我的问题是这个.使用该Value物业有什么意义?似乎不需要获取实际值(即使它是null),并且如果值确实会抛出异常null.