C#中的 ?、?. 、?:、??

1、可空类型修饰符(?)

可空类型修饰符(?),null-conditional operators。引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。为了使值类型也可为空,可以使用可空类型修饰符?来表示。表现形式为T?,也就是泛型

int i = null;     //不正确的写法,编译器会报错
int?      //这样就可以表示可空的整形

2、NULL检查运算符(?.)

NULL检查运算符是C#6.0新推出的特性,顾名思义,通过这个去检查对象是否为null,是程序在执行到不能为null的对象的时候不会报错。

listBox1.Items.Add(result.Text);    //当括号中的值为null时,程序会报错

//所以一般都会加上判断
 if (result != null)
 {
 	listBox1.Items.Add(result.Text);
 }


//通过使用 ?. 就可以使代码简洁
listBox1.Items.Add(result?.Text);

3、三元运算符(?:)

(?: )是C#中的三元运算符,其语法为:条件表达式?表达式1:表达式2。就是先是判断条件表达式中的条件结果(bool类型),如果是为true,则执行表达式1,如果结果是为false,则执行表达式2。可以理解为:

if(条件表达式)
{
	表达式1;
}
else
{
 	表达式2;
 }

4、 空合并运算符(??)

用于定义可空类型和引用类型的默认值。
如果此运算符的左操作数是否null,不为返回左操作数,否则返回右操作数。即a??b形式的空合并表达式要求a为可以为null的类型或引用类型。如果a不为null,则选择a;如果a为null,则直接选择b。可以直接理解 b 就是一个候补,当 a 为空才去选择 b。

int? a= null;
int b = 1;
b = a ?? 2;   //在这里因为a为null ,所以输出的结果b为右边的值2
int a = 3;
b = a ?? 2;   //在这里因为a不为null,所有输出的结果是a的值3

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值