System.Nullable 类

本文提供了此 API 参考文档的补充说明。

Nullable 类支持可分配 null的值类型。

如果类型可以赋值或可赋 null值,则类型为可为 null,这意味着该类型没有任何值。 默认情况下,所有引用类型(例如 String)都是可为 null 的,但所有值类型(例如 Int32)都不是。

在 C# 和 Visual Basic 中,使用 ? 值类型后面的表示法将值类型标记为可为 null。 例如, int? 在 C# 或 Integer? Visual Basic 中,声明可以分配 null的整数值类型。

Nullable 类为 Nullable<T> 结构提供补充支持。 该 Nullable 类支持获取可以为 null 的类型的基础类型,以及对基础值类型不支持泛型比较和相等运算的可为空类型的比较和相等运算。

装箱和取消装箱

当装箱可为 null 的类型时,公共语言运行时会自动装箱对象的基础值 Nullable<T> ,而不是 Nullable<T> 对象本身。 也就是说,如果该 HasValue 属性为 true,则对属性的内容 Value 进行装箱。

HasValue如果可为 null 类型的false属性,则装箱操作的结果为 null。 取消装箱可为 null 类型的基础值时,公共语言运行时将创建初始化为基础值的新 Nullable<T> 结构。