c++ 辅助瞄准
微软C#语言首席设计师Mads Torgersen说,以Nullable引用类型为特征的Microsoft C#8.0语言可以使开发人员在处理null时达到更高的标准。
Torgersen在最近的一篇博客文章中将其描述为“可能是C#8.0最具影响力的功能”,可为空的引用类型使开发人员可以在其代码中明确声明null的流程,并在它们未按照意图进行操作时发出警告。 空引用类型将对现有代码发出新的警告,因此它们是必须显式启用的可选功能。 一旦启用代码,开发人员将必须使代码为null安全,才能通过编译器。
直到9月下旬随着.NET Core 3.0正式提供的C#8.0为止,C#允许引用为null,并且还允许不经检查就取消引用,从而导致在意外取消引用null时导致NullReferencesException
异常。 代码中某个位置不希望有的null可能导致异常引用从另一个位置抛出,从而取消引用它,从而使null错误难以查找和修复。
通过在C#8.0中严格使用null,Microsoft寻求消除此问题。 当普通引用类型的值(例如string
, object
和IDisposable
)为null时,将发出警告。 但是,开发人员必须使用新指令#nullable enable
,在项目级别或直接在源代码中打开null引用类型功能,以在现有代码上获得新的警告。
Torgersen建议开发人员将明年(直到计划的2020年11月.NET 5推出)视为可空推出阶段。 之后,到处使用空引用类型应该是“新常态”。 鼓励库和基础结构(如代码生成器)的作者在推出阶段采用空引用类型。
翻译自: https://www.infoworld.com/article/3482990/c-sharp-80-takes-aim-at-null-reference-bugs.html
c++ 辅助瞄准