? : 单问号用于对 int,double,bool 等无法直接赋值为 null 的数据类型进行 null 的赋值,意思是这个数据类型是 NullAble 类型的。(引用类型默认值null)
int? num1 = null;
int? num2 = 45;//默认值45
Null 合并运算符( ?? )
Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。Null 合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。
double num3;
num3 = num1 ?? 5.34; // num1 如果为空值则返回 5.34
bool? boolval = new bool?();// 值为空