条件操作符
条件操作符是** ?: **
用法是a?b:c
a为一个判断或者布尔值,当a为true时,返回b,否则返回c.
这段代码等价于(假设有个变量d来接收条件操作符返回的值,也就是d=a?b:c)
if (a == true)
{
d = b;
}
else
{
d = c;
}
在使用?:的时候b和c类型要相同,比如b是int,c也得是int.
使用?:的好处就是能简写上面一大串代码.
空合并操作符
空合并操作符是** ?? **
用法是a??b
如果a不为null,则返回a,否则返回b.
这段代码等价于(假设有个变量d来接收条件操作符返回的值,也就是d=a??b)
if (a != null)
{
d = a;
}
else
{
d = b;
}
还可以这么写a??b??c,检查的顺序是从左往右.就是说如果a为null就返回b,b为null就返回c.
好处还是简写代码.??经常用于检查各种东西是否为空,如果为空就返回一个自己设定的默认值.
空条件操作符
空条件操作符是 ?.
用法是a?.(a里面的方法或者属性什么的)
如果a是null,则什么都不执行,如果不是则运行?.后面跟着的东西.
这段代码等价于(假设?.后面跟着的是ToLower())
if (a == null)
{
//什么也不执行
}
else
{
a.ToLower();
}
空条件操作符经常用于检查是否为空,从而省去写一大堆代码的力气.