本文提供了此 API 参考文档的补充说明。
该 Nullable 类支持可分配 null
的值类型。
如果一个类型可以被赋值或者被赋为 null
(表示类型完全没有值),那么我们称这种类型为可空类型。 默认情况下,所有引用类型(例如 String)都是可为 null 的,但所有值类型(例如 Int32)都不是。
在 C# 和 Visual Basic 中,通过在值类型后面使用 ?
语法,将值类型标记为可空。 例如, int?
在 C# 或 Integer?
Visual Basic 中,声明可以分配 null
的整数值类型。
该 Nullable 类为 Nullable<T> 结构提供补充支持。 Nullable 类支持获取可以为 Null 类型的基础类型,并支持那些基础值类型不支持泛型比较和相等运算的可以为 Null 类型对的比较和相等运算。
装箱和拆箱
当对可为 null 的类型进行装箱时,公共语言运行时会自动将 Nullable<T> 对象的基础值进行装箱,而不是 Nullable<T> 对象本身。 也就是说,如果 HasValue 属性为 true
,则对 Value 属性的内容进行装箱。
如果可以为 null 类型的属性 HasValue
是 false
,则装箱操作的结果是 null
。 当可以为 null 类型中的基础值被取消装箱时,公共语言运行时将创建一个以该基础值初始化的新 Nullable<T> 结构。