C#各版本新增加功能 - 张传宁
source link: https://www.cnblogs.com/SavionZhang/p/11229640.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
本系列文章主要整理并介绍 C# 各版本的新增功能与规范建议。
C# 规范建议
C# 9.0 向 C# 语言添加了以下功能和增强功能:
- 记录
- 仅限 Init 的资源库
- 顶级语句
- 模式匹配增强功能
- 本机大小的整数
- 禁止发出 localsinit 标志
- 目标类型的新表达式
- 静态匿名函数
- 目标类型的条件表达式
- 协变返回类型
- 扩展
GetEnumerator
支持foreach
循环 - Lambda 弃元参数
- 本地函数的属性
- 模块初始值设定项
- 分部方法的新功能
.NET 5 支持 C# 9.0。 有关详细信息,请参阅 C# 语言版本控制。
具体新增功能请查看 C#9.0 新增功能
C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发布,但是当前处于预览状态。预计在2019年9月正式发布。
目前提供以下功能可供试用:
- Readonly 成员
- 默认接口成员【*重要,突破性的变革*】请参考:C#8.0 中使用默认接口成员更新接口
- 模式匹配增强功能:Using 声明
- Switch 表达式
- 静态本地函数
- 可处置的 ref 结构
- 可为空引用类型
- 异步流【*重要*】
- 索引和范围
具体新增功能请查看 C#8.0 新增功能
C#7.3 随 VS2017 v15.7 发布(2018年5月)。 自 Visual Studio 2017 版本 15.7 和 .NET Core 2.1 SDK 起,开始随附 C# 7.3。
具体新增功能请查看 C#7.3 新增功能
C#7.2 随 VS2017 v15.5 发布(2017年11月)。自 Visual Studio 2017 版本 15.5 和 .NET Core 2.0 SDK 起,开始随附 C# 7.2。
具体新增功能请查看 C#7.2 新增功能
C#7.1 随 VS2017 v15.3 发布(2017年8月)。 自 Visual Studio 2017 版本 15.3 和 .NET Core 2.0 SDK 起,开始随附 C# 7.1。
具体新增功能请查看 C#7.1 新增功能
C# 7.0 向 C# 语言添加了许多新功能:具体请查看 C#7.0 新增功能
具体功能请查看 C#6.0 新增功能
除了发布此版本,他们还做了另一件事,虽然这件事本身与传统的语言功能无关。 他们发布了 Roslyn 编译器即服务。 C# 编译器现在是用 C# 编写的,你可以使用编译器作为编程工作的一部分。
async
和 await
模型。C# 3.0 版和 Visual Studio 2008 一起发布于 2007 年下半年,但完整的语言功能是在 .NET Framework 3.5 版中发布的。 此版本标示着 C# 发展过程中的重大更改。 C# 成为了真正强大的编程语言。
下面列出的功能中大多数似乎都是不可或缺,难以分割的。 它们的组合都是经过巧妙布局。 我们通常认为 C# 版本的杀手锏是查询表达式,也就是语言集成查询 (LINQ)。LINQ 的构造可以建立在更细微的视图检查表达式树、Lambda 表达式以及匿名类型的基础上。 不过无论如何 C# 3.0 都提出了革命性的概念。 C# 3.0 开始为 C# 转变为面向对象/函数式混合语言打下基础。
微软于2005年11月发布了.NET Framework 2.0,同时发布了Visual Studio 2005,同步对应的C#升级到了2.0版本。
除现有功能以外的其他 C# 2.0 功能:
- 方法组转换(委托)
随 Visual Studio 2003 一起提供的 C# 版本 1.2。 它对语言做了一些小改进。 最值得注意的是,从此版本开始,当 IEnumerator 实现 IDisposable 时,foreach
循环中生成的代码会在 IEnumerator 上调用 Dispose。
C# 1.0 的主要功能包括:
C#版本 |
发布时间 |
.NET 版本 |
VS版本 |
CLR版本 |
C#1.0 |
2002-02-13 |
.NET Framework 1.0 |
VS.NET 2002 |
|
C#1.1 |
2003-04-24 |
.NET Framework 1.1 |
VS.NET 2003 |
|
C#2.0 |
2005-11-07 |
.NET Framework 2.0 |
VS2005 |
|
C#3.0(除Linq) |
2006-11 |
.NET Framework 3.0 |
VS2008 |
|
C#3.0 |
2007-11-19 |
.NET Framework 3.5 |
VS2008 |
|
C#4.0 |
2010-4-12 |
.NET Framework 4.0 |
VS2010 |
|
C#5.0 |
2012-02-20 |
.NET Framework 4.5 |
VS2012 |
|
C#5.0 |
2013-10-17 |
.NET Framework 4.5.1 |
VS2013 |
|
C#5.0 |
2014-05-05 |
.NET Framework 4.5.2 |
VS2013 |
|
C#6.0 |
2015-07-26 |
.NET Framework 4.6 |
VS2015(v14) |
|
C#6.0 |
2015-11-30 |
.NET Framework 4.6.1 |
VS2015(v14) |
|
C#7.0 |
2016-08-02 |
.NET Framework 4.6.2 |
VS2017(v15) |
|
C#7.1 |
2017-04-05 |
.NET Framework 4.7 |
VS2017(v15.3) |
|
C#7.2 |
2017-10-17 |
.NET Framework 4.7.1 |
VS2017(v15.5) |
|
C#7.3 |
2018-04-30 |
.NET Framework 4.7.2 |
VS2017(v15.7) |
|
C#8.0 |
2019-04-18 |
.NET Framework 4.8 |
VS2019(v16) |
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK