c#中的Nullable(可空类型)

在C#中使用Nullable类型(给整型赋null值的方法)

在C#1.x的版本中,一个值类型变量是不可以被赋予null值的,否则会产生异常。在C#2.0中,微软提供了Nullable类型,允许用它定义包含null值(即空值)的数据类型,这对处理数据库中包含可选字段以及很多方面都有很大帮助。


(1)定义Nullable类型

定义一个nullable类型非常类似于定义一个非nullable类型。不同之处在于使用类型修饰符“?”。

比如定义一个整型如下:

int myInt = 1;

    要使一个整型变量可以存储一个null值,可以如下声明:

int? myNullableInt= 1;

    这两个变量看起来似乎是一样的。但事实并非如此。实际上,Nullable类型是一个结构体,它有两个公开可读字段:HasValue和Value。 HasValue是一个布尔值,当有值存储时它为真,当变量值为null时HasValue为假。当HavValue为真是时,可以取得变量的值;为假时,当尝试取得变量的值时会抛出一个异常。

            int? num = null;
            if (num.HasValue)
            {
                System.Console.WriteLine("num = " + num.Value);
            }
            else
            {
                System.Console.WriteLine("num = Null");
            }

现在null是C#的一个关键字,它可以被赋给一个Nullable型变量。下面是对Nullable型变量赋值的两种有效方式。

double? myDouble =3.14159;

double?myOtherDouble = null;

原文地址:https://www.cnblogs.com/DSC1991/p/10860723.html