C#特殊数据类型nullable
C#提供了一个特殊的数据类型,可空类型(nullable),它可以表示基础类型以内的值,再加上一个null值。
如:Nullable<Int32>,可以理解为可空的Int32,它除了可以赋值为正常的Int32位范围内的任意值,同时也可以被赋值为null。
nullable类型声明语法:
<data_type>? <variable_name> = null;
使用vistual studio新建C#控制台应用程序Chapter07_001
在Main方法中添加如下代码来测试可空类型的使用:
//空数据类型用法
int? num1 = null;
int? num2 = 100;
double? num3 = new double?();
double? num4 = 3.1415926;
//控制台打印显示结果
Console.WriteLine("显示可空类型值:{0},{1},{2},{3}",num1,num2,num3,num4);
bool? boolval = new bool?();
Console.WriteLine("显示可空类型bool值:{0}",boolval);
Console.ReadKey();
编译运行后结果如下:
Null合并运算符(??)
Null合并运算符用于定义可空类型和引用类型的默认值。
Null合并运算符为类型转换定义了一个预设值,以防止可空类型的值为Null。Null合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数类型。
如果第一个操作数的值为null,则返回第二个操作数的值,否则返回第一个操作数的值。
在Main方法中添加如下代码:
//Null??运算符
double? num5 = num3 ?? num4;
Console.WriteLine("使用Null??运算符计算后num5结果是:{0}",num5);
编译运行后结果如下:
从上面的运行结果可以看到定义num5时对赋值的num3进行了是否为null判断,如果为空则使用num4的值赋值给到num5。