.net6中的?问号和叹号用处

在.NET6中,问号运算符被用来简化代码,如`action?.invoke(content)`,它表示如果`action`非空则执行`invoke`,否则不做任何操作。这类似于三元运算符但更简洁。此外,双问号`??`是空合并运算符,如`a??b`,当`a`为空时返回`b`的值,它是右结合的。这些新特性提高了代码的可读性和效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.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)”计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值