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