本系列文章主要整理并介绍 C# 各版本的新增功能。
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 于 2017年3月 随 .NET 4.7 和 VS2017 发布。
C# 7.0 向 C# 语言添加了许多新功能:具体请查看 C#7.0 新增功能
C#6.0 在 2012 年7月随着.NET Framework 4.6 一同发布,后期发布了.NET Framework 4.6.1,4.6.2。
C# 在 3.0 版和 5.0 版对面向对象的语言添加了主要的新功能。 在 6.0 版中,它不再推出主导性的杀手锏,而是发布了很多使得 C# 编程更有效率的小功能。这些功能每一个都很有趣。 但从整体来看,可以发现一个有趣的模式。 在此版本中,C# 消除语言样本,让代码更简洁且更具可读性。 所以对喜欢简洁代码的用户来说,此语言版本非常成功。
具体功能请查看 C#6.0 新增功能
除了发布此版本,他们还做了另一件事,虽然这件事本身与传统的语言功能无关。 他们发布了 Roslyn 编译器即服务。 C# 编译器现在是用 C# 编写的,你可以使用编译器作为编程工作的一部分。
C#5.0 在 2012 年2月随着.NET Framework 4.5 一同发布,后期发布了.NET Framework 4.5.1,4.5.2。5.0 版是C#语言有针对性的一个版本。 对此版本中所做的几乎所有工作都归入另一个突破性语言概念:适用于异步编程的 async
和 await
模型。
C# 4.0 版和 Visual Studio 2010 一起发布于 2010 年4月,对应 .NET Framework 4.0。C# 4.0 版很难达到 3.0 版的创新水平。 在 3.0 版中,C# 已经完全从 Java 的阴影中脱颖而出,崭露头角。 很快成为一种简洁精炼的语言。此版本引入了以下新功能:
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版本对应关系
C#版本 | 发布时间 | .NET 版本 | VS版本 | CLR版本 |
C#1.0 | 2002-02-13 | .NET Framework 1.0 | VS.NET 2002 | 1.0 |
C#1.1 | 2003-04-24 | .NET Framework 1.1 | VS.NET 2003 | 1.1 |
C#2.0 | 2005-11-07 | .NET Framework 2.0 | VS2005 | 2.0 |
C#3.0(除Linq) | 2006-11 | .NET Framework 3.0 | VS2008 | 2.0 |
C#3.0 | 2007-11-19 | .NET Framework 3.5 | VS2008 | 2.0 |
C#4.0 | 2010-4-12 | .NET Framework 4.0 | VS2010 | 4 |
C#5.0 | 2012-02-20 | .NET Framework 4.5 | VS2012 | 4 |
C#5.0 | 2013-10-17 | .NET Framework 4.5.1 | VS2013 | 4 |
C#5.0 | 2014-05-05 | .NET Framework 4.5.2 | VS2013 | 4 |
C#6.0 | 2015-07-26 | .NET Framework 4.6 | VS2015(v14) | 4 |
C#6.0 | 2015-11-30 | .NET Framework 4.6.1 | VS2015(v14) | 4 |
C#7.0 | 2016-08-02 | .NET Framework 4.6.2 | VS2017(v15) | 4 |
C#7.1 | 2017-04-05 | .NET Framework 4.7 | VS2017(v15.3) | 4 |
C#7.2 | 2017-10-17 | .NET Framework 4.7.1 | VS2017(v15.5) | 4 |
C#7.3 | 2018-04-30 | .NET Framework 4.7.2 | VS2017(v15.7) | 4 |
C#8.0 | 2019-04-18 | .NET Framework 4.8 | VS2019(v16) |
原文:https://www.cnblogs.com/SavionZhang/p/11229640.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com