注意:此类在 .NET Framework 2.0 版中是新增的。
支持可为其分配 空引用(在 Visual Basic 中为 Nothing) 的值类型,如引用类型。无法继承此类。
命名空间:System
程序集:mscorlib(在 mscorlib.dll 中)
<ComVisibleAttribute(True)> _
Public NotInheritable Class Nullable
[ComVisibleAttribute(true)]
public static class Nullable
[ComVisibleAttribute(true)]
public ref class Nullable abstract sealed
/** @attribute ComVisibleAttribute(true) */
public final class Nullable
ComVisibleAttribute(true)
public final class Nullable
对于一个类型,如果既可以给它分配一个值,也可以给它分配 空引用(在 Visual Basic 中为 Nothing)(表示没有任何值),我们就说这个类型是可空的。因此,可空类型可表示一个值,或表示不存在任何值。例如,类似 String 的引用类型就是可空类型,而类似 Int32 的值类型不是可空类型。由于值类型的容量只够表示适合于该类型的值,因此它不可为空;值类型没有表示空值所需的额外容量。
Nullable 类为 Nullable 结构提供补充支持。Nullable 类支持获取可空类型的基础类型,对于其基础值类型不支持泛型比较和相等比较运算的可空类型,该类支持对其进行比较和相等比较运算。
方案
根据具体环境,使用可空类型来表示存在或不存在的事物。例如,HTML 标记的某个可选属性可能存在于某一个标记中,但不存在于另一个标记中;或者数据库表的某个可空列可能存在于表的某一行中,但不存在于另一行中。
可将该属性或列表示为类中的一个字段,并可以将该字段定义为值类型。该字段可包含属性或列的所有有效值,但不能提供一个附加值来表示属性或列不存在。在这种情况下,将该字段定义为可空类型而不是值类型。
装箱和取消装箱
在对可空类型进行装箱时,公共语言运行库自动将 Nullable 对象的基础值(而不是 Nullable 对象本身)装箱。也就是说,如果 HasValue 属性为 true,则将 Value 属性的内容装箱。如果 HasValue 属性为 false,则将 空引用(在 Visual Basic 中为 Nothing) 装箱。在对可空类型的基础值进行取消装箱时,公共语言运行库创建一个新的初始化为基础值的 Nullable 结构。
System.Object
System.Nullable
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。
Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
.NET Framework
受以下版本支持:2.0
.NET Compact Framework
受以下版本支持:2.0