C#8.0瞄准了空引用错误

微软C#语言首席设计师Mads Torgersen说,以Nullable引用类型为特征的Microsoft C#8.0语言可以使开发人员在处理null时达到更高的标准。

Torgersen在最近的博客文章中将其描述为“可能是C#8.0最具影响力的功能”,可为空的引用类型使开发人员可以在其代码中明确显示null的流,并在它们未按照意图进行操作时发出警告。 空引用类型将对现有代码发出新的警告,因此它们是一项可选功能,必须明确启用。 一旦在代码中启用,开发人员将必须使代码为null安全,才能通过编译器。

[ 也在InfoWorld上:Microsoft .NET 5:.NET Standard和.NET Core的合并对开发人员意味着什么 ]

在C#8.0于9月下旬随着.NET Core 3.0的到来正式可用之前,C#允许引用为null,并且还允许不经检查就取消引用,从而导致在意外取消引用null时导致NullReferencesException异常。 代码中某个地方不希望有的null可能导致异常引用从另一个地方抛出,从而取消引用它,从而使null错误难以查找和修复。

通过在C#8.0中严格使用null,Microsoft寻求消除此问题。 当普通引用类型的值(例如stringobjectIDisposable )为null时,将发出警告。 但是开发人员必须使用新指令#nullable enable在项目级别或直接在源代码中打开null引用类型功能,以在现有代码上获得新的警告。

[ 同样在InfoWorld上:.NET 5.0不会附带的.NET Framework API ]

Torgersen建议开发人员将明年(计划在2020年11月推出.NET 5)视为可空推出阶段。 之后,在所有地方使用空引用类型应该是“新常态”。 鼓励库和基础结构(如代码生成器)的作者在推出阶段采用空引用类型。

From: https://www.infoworld.com/article/3482990/c-sharp-80-takes-aim-at-null-reference-bugs.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值