c# ?的用法
1、可空类型修饰符(?),
如: int? x = null;//可空类型默认值都是null,而值类型如int默认值为0、bool默认值为false等
int? x = 3; //等同于Nullable<int> x = new Nullable<int>(3)
bool? result = true;
注意:
int i; //默认值0
int? ii; //默认值null
2、三元运算符(? :),
如:bool f=false; return f==true?1:0;如果f为true则返回1,否则返回0
3、 空合并运算符(??)
如:a??b 当a为null时则返回b,a不为null时则返回a本身
“a??b??c”的形式按“a??(b??c)”计算
Null 合并运算符用于定义可空类型和引用类型的默认值。Null 合并运算符为类型转换定义了一个预设值,以防可空类型的值为 Null。
Null 合并运算符把操作数类型隐式转换为另一个可空(或不可空)的值类型的操作数的类型。
4、NULL检查运算符(?.)
fileInfo?.Close() 当fileInfo不为null是执行Close方法
DateTime? birthday= personList?.FirstOrDefault()?.Birthday;