C#中?.、 ?、 ?? 、? : 的区别。
1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:int? 表示可空的整形,DateTime? 表示可为空的时间。
2. 三元(运算符)表达式(?:)
例如:x?y:z 表示如果表达式x为true,则返回y;
如果x为false,则返回z,是省略if{}else{}的简单形式。
3. 空合并运算符(??)
用于定义可空类型和引用类型的默认值。
如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。
例如:a??b 当a为null时则返回b,a不为null时则返回a本身。
空合并运算符为右结合运算符,即操作时从右向左进行组合的。
如,“a??b??c”的形式按“a??(b??c)”计算。
4.NULL检查运算符(?.)
//?. ->如果为不为NULL,则执行里面的语句;
if (model.FeeList?.Any() ?? false)
{
//执行语句
}
原文:https://www.cnblogs.com/nanxixi/p/14804159.html