相关疑难解决方法(0)

为什么Nullable <T> HasValue属性不会在Null上抛出NullReferenceException?

请考虑以下代码:

DateTime? ndate = null;
Console.WriteLine(ndate.HasValue);
Run Code Online (Sandbox Code Playgroud)

我原本期望一个NullReferenceException,但HasValue确实会返回false.但是,由于ndate为null,属性调用如何成功,因为没有对象可以调用属性HasValue?

.net c#

20
推荐指数
3
解决办法
3222
查看次数

C#Nullable类型和Value属性

我有点不清楚在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).

但是,如果我最初设置xnull,则第一个Console.WriteLine抛出异常而第二个抛出异常.

所以,我的问题是这个.使用该Value物业有什么意义?似乎不需要获取实际值(即使它是null),并且如果值确实会抛出异常null.

c#

18
推荐指数
2
解决办法
9818
查看次数

标签 统计

c# ×2

.net ×1