如何:创建可以为 null 的类型(类设计器)

某些值类型并不总是具有(或需要)已定义的值。在可能没有为某些字段赋予任何值的数据库中,这是常见的实际情况。例如,您可以将 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 的类型。

有关 Visual C# 中可以为 null 的类型的更多信息,请参见可以为 null 的类型(C# 编程指南)。有关 Visual Basic 中可以为 null 的类型的更多信息,请参见可以为 Null 的值类型 (Visual Basic)

说明说明

对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置

使用类设计器添加可以为 null 的类型

  1. 在类关系图中展开现有类或创建新类。

  2. 若要将类添加到项目中,请在**“类关系图”菜单上单击“添加”,然后单击“添加类”**。

  3. 若要展开类形状,请在**“类关系图”菜单上单击“展开”**。

  4. 选择类形状。在**“类关系图”菜单上单击“添加”,然后单击“字段”。具有默认名称“字段”的新字段将显示在类形状中和“类详细信息”**窗口中。

  5. 在**“类详细信息”窗口的“名称”**列中(或在类形状本身中),将新字段的名称更改为有意义的有效名称。

  6. 在**“类详细信息”窗口的“类型”**列中,将该类型声明为可以为 null 的类型,如以下代码中所示:

    // Declare a nullable type in Visual C#:
    class Test
    {
       int? building_number = 5;
    }
    
    ' Declare a nullable type in Visual Basic:
    Class Test
       Dim buildingNumber As Nullable(Of Integer) = 5
    End Class
    

使用代码编辑器添加可以为 null 的类型

  1. 向项目中添加类。在**“解决方案资源管理器”中选择项目节点,然后在“项目”菜单上单击“添加类”**。

  2. 在新类的 .cs 或 .vb 文件中,将新类中的一个或多个可以为 null 的类型添加到类声明中。

  3. 将新类图标从类视图拖至类设计器设计图面中。类形状随即显示在类关系图中。

  4. 展开类形状的详细信息,并将鼠标指针移到类成员上。工具提示将显示每个成员的声明。

  5. 右击类形状并单击**“类详细信息”。可以在“类详细信息”**窗口中查看或修改新类型的属性。

请参见

任务

如何:标识可以为 null 的类型(C# 编程指南)

参考

可以为 null 的类型(C# 编程指南)

使用可以为 null 的类型(C# 编程指南)

Nullable<T>

概念

可以为 Null 的值类型 (Visual Basic)