C#单问号?与双问号??
?单问号用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值,意思是这个数据类型时Nullable类型的
int? i=3;
等同于:
??双问号用于判断一个变量在为null的时候返回一个指定的值.
C#可空类型(Nullable)
c#提供了一个特殊的数据类型,nullable类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个null值
例如,Nullable<Int32>,读作"可空的Int32",可以被赋值为-2,147,438,648到2,147,483,647之间的任意值,也可以被赋值为null值.类似的,Nullable<bool>变量可以被赋值给true或false或null
在处理数据库和其他包含可以未赋值的元素的数据类型时,将null赋值给数值类型或布尔值的功能特别有用,例如,数据库中的布尔型字段可以存储值true或false 或者,该字段可以未定义.
实例代码如下:
Null合并运算符(??)
Null合并运算符用于定义可空类型和引用类型的默认值.Null合并运算符为诶行转换定义了一个预设值,以防可空类型的值为Null,Null合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型.
如果第一个操作数的值为null,则运算符返回第二个操作数的值,否则返回第一个操作数的值.
实例代码如下:
这里??可以理解为三目运算符的简化形式: