.net6中添加很多语法糖,其中问号的用处大大简化了我们的编码。
例如:
public void Read(string content,Action<string> action)
{
action?.invoke(content);
}
其中的action?.invoke(content)其实就用到了问号,意思就是action如果是非空则执行invoke,如果是空的就选择不执行。其实他和三元运算符的用处差不多,只是又进一步简化为判断是否为空。
布尔表达式?表达式1:表达式2
int max = a > b ? a : b;
另外,还有两个问号的用法??
??表示空合并运算符
a??b 如果 a 为非空,则 a ?? b 的结果为 a;否则结果为 b 。
空合并运算符为右结合运算符,即操作时从右向左进行组合的。
例:“a??b??c”的形式按“a??(b??c)”计算。