C#中 ?号的几个用法

一、常用的三元表达式(三元运算符 ?)

            int a = 2;
            int b = 5;
            string result = a > b ? "大于" : "小于";
            Console.WriteLine(result);
            //输出:小于

解读:string result=a>b?"大于" : "小于"; 

a大于b吗?true输出 “大于”,false输出 “小于”

 

二、用于定义可空类型(可空类型修饰符 ?)

int? num=null;

解读:定义了可为空值的int类型,如果你写成 int num=null;系统就会报错,因为int的值是整数,不能为null

 

三、NULL检查运算符 ?.

int? id = student?.FirstOrDefault()?.Id;

解读:数据查询时,经常需要做判空处理,这里直接简化了,加了一个?号表示不为空时才执行下面的代码

四、空合并运算符 ??

var result=a??b

解读:当a不为空时,返回a。如果a为空,就返回b

原文地址:https://www.cnblogs.com/qingheshiguang/p/14211147.html