System.Nullable 类

方法描述

支持可为其分配 null 的值类型,如引用类型。 此类不能被继承。

语法定义(C# System.Nullable 类 的用法)

[ComVisibleAttribute(true)]
public static class Nullable

构造函数

构造函数名称 构造函数描述

成员/方法

方法名称 方法描述
Compare 比较两个 Nullable 对象的相对值。
Equals 指示两个指定的 Nullable 对象是否相等。
GetUnderlyingType 返回指定可以为 null 的类型的基础类型参数。

提示和注释

对于一个类型,如果既可以给它分配一个值,也可以给它分配 null(表示没有任何值),我们就说这个类型是可空的。 因此,可以为 null 的类型可表示一个值,或表示不存在任何值。 例如,类似 String 的引用类型就是可以为 null 的类型,而类似 Int32 的值类型不是可以为 null 的类型。 由于值类型的容量只够表示适合于该类型的值,因此它不可为空;值类型没有表示空值所需的额外容量。

Nullable 类为 Nullable 结构提供补充支持。 Nullable 类支持获取可以为 null 的类型的基础类型,对于其基础值类型不支持泛型比较和相等比较运算的可以为 null 的类型,该类支持对其进行比较和相等比较运算。

方案

根据具体环境,使用可以为 null 的类型来表示存在或不存在的事物。 例如,HTML 标记的某个可选特性可能存在于某一个标记中,但不存在于另一个标记中;或者数据库表的某个可空列可能存在于表的某一行中,但不存在于另一行中。

可将该特性或列表示为类中的一个字段,并可以将该字段定义为值类型。 该字段可包含特性或列的所有有效值,但不能提供一个附加值来表示特性或列不存在。 在这种情况下,将该字段定义为可以为 null 的类型而不是值类型。

装箱和取消装箱

在对可以为 null 的类型进行装箱时,公共语言运行时自动将 Nullable 对象的基础值(而不是 Nullable 对象本身)装箱。 也就是说,如果 HasValue 属性为 true,则将 Value 属性的内容装箱。 如果 HasValue 属性为 false,则将 null 装箱。 在对可以为 null 的类型的基础值进行取消装箱时,公共语言运行时创建一个新的初始化为基础值的 Nullable 结构。

System.Nullable 类例子


继承层次结构

System.Object

System.Nullable

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。