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
版权声明:本文为qq_43857510原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。