C#中?.、 ?、 ?? 、? : 的区别
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) { //执行语句 }
无限接近死亡,才能领悟生命的真谛