C#除了有 ?: 这个三元运算符以外
还有两个问号 ?? 运算符叫做空合并运算符,用来判断null值取空非常方便
string c = a ?? b ; a是值类型string,如果a是null,那么c=b,否则c=a。
这样就会有新的需求,如果a是一个对象(引用类型),a有Name字段,我们需要在a不是null的时候获取a.Name,否则获取b
(如果a是null,直接获取a.Name会报错)
平时我们会这样写
string result="";
if(a==null){
result=b;
}else{
result=a.Name;
}
这是C#提供了?.这种写法来简化, a?.Name这种写法可以在a是null的时候不再进行后续操作
string result=a?.Name??b;