根据 .Net 基金会发布的编程语言最新路线图,为了提供代码质量,Microsoft C# 8 将具有可空引用类型。该功能除了为现有的非空引用添加安全引用类型,编译器在遇到可空类型的引用或 Null 值分配给非空变量类型时发出警告。
可空引用类型旨在帮助开发人员阻止空引用异常,它的核心是表达一个无效意图。当某些东西不为空时,编译器会去识别,如果用户将 null 赋值给未被声明为 null 的应用时,编译器会给出警告。通过这种方法,让程序员尽快找到错误并且迅速改正。
但是,遗憾的是微软现在还没有透露 C# 8 的发布时间。
除了上述功能,C# 8 还有以下计划功能:
采取相应手段来处理违规行为。
增加默认接口方法,接口可以通过虚拟扩展方法进行演进。API 作者可以在将来的版本中为接口添加方法,而不会破坏源或二进制兼容性。该功能已经可用于 Java 等语言。
异步流功能提供了一个异步版本的抽象 IEnumerable,它是可以枚举非特定集合的基本接口。
扩展,提供一种定义扩展成员的新类型。虽然 C# 中已经有作为扩展类型实例的方法,但是C# 8 将通过支持静态和实例成员来扩展该功能。