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)
            {
                //执行语句
            }

 

posted @ 2021-05-24 14:15  东方李  阅读(249)  评论(0编辑  收藏  举报