提问人:Farhad Zamani 提问时间:8/6/2023 更新时间:8/7/2023 访问量:83
在 c# 中,将 null 值分配给可为 null 的值类型等于 new Nullable<T>?
Assigning null value to nullable value type is equal to new Nullable<T> in c#?
问:
将 null 值分配给可为 null 的值类型等于 ?new Nullable<T>
c#
我有以下代码:
int? num = null;
根据这个答案:
可为 null 的类型是由两个字段组成的结构:一个 bool 和一个 T。当值为 null 时,bool 为 false,T 具有默认值。当该值不为 null 时,布尔值为 true。
值类型的默认值是为 Nullable<T>
结构中的“值
”字段设置的。^
当我使用 时,等于 ,并且为 ?int? num = null
num
new Nullable<int>();
0
value
答:
1赞
Zohar Peled
8/6/2023
#1
当我使用 int?num = null,num 等于 new Nullable();并且为该值设置了默认值 0?
是的,但是如果您尝试访问属性的属性,则当它的属性为 时,你会得到一个。InvalidOperationException
Value
Nullable<T>
HasValue
false
埃里克·利珀特(Eric Lippert)在他的博客中写了一篇关于Nullable类型的两篇文章系列,我强烈建议您阅读它:
更多信息:
评论