【发布时间】:2013-04-30 16:19:26
【问题描述】:
.NET 是如何实现可空类型的?
Nullable<int> x = 5;
int? x = 5;
【问题讨论】:
-
@JonSkeet,我查看了重复的问题。如果 Nullable
是一个结构。作为一个结构,它是值类型,那么我们为什么能够将“null”分配给它的实例呢?诠释? = 空
.NET 是如何实现可空类型的?
Nullable<int> x = 5;
int? x = 5;
【问题讨论】:
是的,在.net中是一样的
int? variable = 5;
【讨论】:
所以Nullable<t> 有两个主要属性:value 和 hasValue
现在,如果您有一个值类型(例如 int) - 它永远不会有 null 值,如果是 int,它的初始值为 0。
由于value 是一个属性,您可以单独跟踪它是否设置为null,如果它为null,但您尝试使用value 属性的getter 方法,它可能会抛出异常.
【讨论】: