某些值类型并不总是有定义的值(或需要)。 这是数据库中的常见做法,其中某些字段可能未分配任何值。 例如,可以将 null 值分配给数据库字段,以表示尚未为其分配值。
可以为 null 的类型是一种扩展的值类型,以便其可为该类型采用典型范围内的值,也可以采用 null 值。 例如,对于一个可为空的 Int32(也以 Nullable<Int32> 表示),可以为其分配从 -2147483648 到 2147483647 之间的任何值,或可为其分配 null 值。 Nullable<bool> 可以赋值为 True, False, 或 null(即根本没有值)。
可以为 null 的类型是 Nullable<T> 结构的实例。 可为空类型的每个实例都有两个公共只读属性:HasValue 和 Value。
HasValue为类型bool,指示变量是否包含定义的值。True表示变量包含非 null 值。 可以使用语句(如if (x.HasValue)或if (y != null)) 来测试定义的值。Value与基础类型相同。True如果是HasValue,Value则包含有意义的值。 如果HasValue是False,访问Value将引发无效操作异常。
默认情况下,将变量声明为可为 null 的类型时,它没有定义的值(HasValue 为 False),而不是其基础值类型的默认值。
类设计器显示可以为 null 的类型,就像显示其基础类型一样。
有关 C# 中可为 null 的类型的详细信息,请参阅 可以为 Null 的类型。 有关 Visual Basic 中可为 null 的类型的详细信息,请参阅 可以为 Null 的值类型。
注释
本文中的说明阐述了 Visual Studio 中可用的最新版本的交互式开发体验 (IDE)。 你的计算机可能会对某些用户界面元素显示不同的名称或位置。 你可能正在使用其他版本的 Visual Studio 或其他环境设置。 有关详细信息,请参阅个性化设置 IDE。
使用类设计器添加可空类型
在类图中,展开现有类或创建新类。
若要向项目添加类,请在 “类图 ”菜单上单击“ 添加添加>类”。
若要展开类形状,请在 “类图 ”菜单上单击“ 展开”。
选择类形状。 在 “类图 ”菜单上,单击“ 添加>字段”。 具有默认名称 “字段 ”的新字段将显示在类形状和 “类详细信息 ”窗口中。
在“类详细信息”窗口(或类形状本身)的“名称”列中,将新字段的名称更改为有效且有意义的名称。
在“类详细信息”窗口的“类型”列中,通过指定以下内容将类型声明为可以为 null 的类型:
int?(Visual C#)-
Nullable(Of Integer)(Visual Basic)
使用代码编辑器添加可以为 null 的类型
向项目中添加类。 在 解决方案资源管理器中选择项目节点,然后在 “项目 ”菜单上,单击“ 添加类”。
在新类的.cs或.vb文件中,将新类中的一个或多个可为 null 类型添加到类声明中。
从类视图中,将新类图标拖到类设计器设计图面。 此时类图中将显示类形状。
展开该类形状的详细信息,然后将鼠标指针移到类成员处。 工具提示显示每个成员的声明。
右键单击类形状,然后单击“ 类详细信息”。 可以在 “类详细信息 ”窗口中查看或修改新类型的属性。