c#入门经典 c# 6.0
Microsoft已充实了有关C#版本8.0(该语言的下一个计划主要版本)的更多详细信息。 C#8.0预计将于2019年与.Net Core 3.0一同发布。 开发人员可以在Visual Studio 2019 IDE的 Beta中试用语言功能。
微软表示,尽管C#8.0中的大多数语言功能都可以在任何版本的.Net上运行,但其中一些功能具有平台依赖性。 异步流,索引和范围依赖于.Net Standard 2.1一部分的框架类型。 .Net Core 3.0,Xamarin,Unity和Mono将实现2.1版本,而.Net Framework 4.8不会 。 因此,在C#8中,使用这些功能所需的类型将不可用。0面向.Net Framework 4.8。 但是,C#编译器对它所依赖的类型宽容,如果可以找到它们,它们将使用正确的名称和形状来定位类型。
C#8.0中与类型相关的新增功能包括:
- 新的
Index
类型,用于建立索引。 可以从从开头算起的int
或从结尾开始算起的前缀^
运算符创建索引。 -
Range
类型,由两个Index
es组成,一个为开始,一个为结束。 可以使用x..y
范围表达式编写; 然后,开发人员可以使用Range
进行索引以生成切片。 - 根据.Net Foundation的说法,可为空的引用类型可提高代码质量,该基金会负责监督C#属于其中的开源.Net。 该功能将在现有引用类型之外添加安全引用类型,这些引用类型将被称为不可为空。 当取消引用可为空的类型或将null值分配给不可为空的变量类型时,编译器会警告您。 可空引用类型旨在帮助开发人员防止空引用异常。 该功能的核心是表达意图为空。 当您将null分配给未声明为null的引用时,编译器将识别出什么不为null并发出警告。 借助该功能,开发人员可以协助您查找错误并使其消失。
为C#8计划的其他新功能包括:
- 开关表达式,提供了轻量级的switch语句,在所有情况下都是表达式。
- 目标类型的新表达式,当开发人员创建新对象并且已经从上下文中给出类型时,可以省略类型。
- 递归模式,其中模式可以包含其他模式。
- 一种处理代码中断行为的选择加入方法。
- 默认的接口编程功能,因此可以通过虚拟扩展方法来扩展接口。 API作者可以在将来的版本中向接口添加方法,而不会破坏源或二进制兼容性。 该功能已经可以在Java等语言中使用。
- 异步流功能提供了IEnumerable的异步版本的抽象,IEnumerable是可以枚举的非泛型集合的基本接口。
- 扩展所有内容,以提供一种定义新型扩展成员的方法。 尽管在C#中已经可以定义用作扩展类型的实例方法的方法,但是C#8建议书通过支持静态成员和实例成员来扩展此功能。
翻译自: https://www.infoworld.com/article/3220491/c-roadmap-what-to-expect-in-microsoftnets-c-8.html
c#入门经典 c# 6.0