可空类型
C# 提供了一个特殊的数据类型,nullable 类型(可空类型),可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。
? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。
int? i =1; 等同于:
Nullable<int> i = new Nullable<int>(3);
int a; //默认值为0
int? b; //默认值为null
??:双问号可用于判断一个变量在为 null 时返回一个指定的值。
string str = null;
string str1 = str ?? "kkk"; //如果问号左边的变量是空值,则赋予右边的值。