C# 6.0 (C# vNext) 新功能之:Null-Conditional Operator

本文介绍了C# 6.0引入的Null-Conditional Operator,也称为Null Propagating Operator或Safe Navigation Operator。这个新特性简化了代码,避免了对null值的检查。通过?.操作符,可以在对象可能为null的情况下安全地调用方法或访问属性。例如,`GetCustomer()?.name`仅在GetCustomer()返回非null时才尝试访问name。同样,`x?.Dispose()`仅在x不为null时调用Dispose()方法。此外,还展示了如何在事件处理和字符串处理等场景中应用此运算符。
摘要由CSDN通过智能技术生成
Null-Conditional Operator 也叫 Null propagating operator 也叫 Safe Navigation Operator

看名字,应该就有点概念了。如果还不知道,提示一下:
有个叫 Conditional Operator 条件运算符(?:)
也就是常会用到的:
var result = (1 > 2) ? true : false;

当括号内的结果为 true 时,回传第一个值,如果为 false 回传第二个值。

另外有一种:null-coalescing operator (??)
比如:
int? x = null;
int y = x ?? -1;
当 x 不为 null 时,则将其值给 y, 否则 y 被指定为 -1

C# 6.0 新的 Null-Conditional Operator 应该可以叫做 null条件运算符
使用如下:

C# 6.0 之前的写法:
var temp = GetCustomer();
string name = (temp == null) ? null : temp.name;

C# 6.0 的新写法
var temp = GetCustomer()?.name;

也就是当 GetCustomer() 回传值不为 null 时,取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值