本系列文章主要整理并介绍 C# 各版本的新增功能。
C# 8.0
C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019
一同发布,但是当前处于预览状态。预计在2019年9月正式发布。
目前提供以下功能可供试用:
* Readonly 成员
* 默认接口成员【*重要,突破性的变革*】请参考:C#8.0 中使用默认接口成员更新接口
<https://www.cnblogs.com/SavionZhang/p/11203119.html>
* 模式匹配增强功能:Using 声明
* Switch 表达式
* 属性模式
* 元组模式
* 位置模式
* 静态本地函数
* 可处置的 ref 结构
* 可为空引用类型
* 异步流【*重要*】
* 索引和范围
具体新增功能请查看 C#8.0 新增功能 <https://www.cnblogs.com/SavionZhang/p/11201818.html>
C# 7.3
C#7.3 随 VS2017 v15.7 发布(2018年5月)。 自 Visual Studio 2017 版本 15.7
<https://visualstudio.microsoft.com/vs/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link>
和 .NET Core 2.1 SDK
<https://docs.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-core-2-1> 起,开始随附
C# 7.3。
具体新增功能请查看 C#7.3 新增功能 <https://www.cnblogs.com/SavionZhang/p/11201364.html>
C# 7.2
C#7.2 随 VS2017 v15.5 发布(2017年11月)。自 Visual Studio 2017 版本 15.5
<https://visualstudio.microsoft.com/vs/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link>
和 .NET Core 2.0 SDK
<https://docs.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-core-2-0> 起,开始随附
C# 7.2。
具体新增功能请查看 C#7.2 新增功能 <https://www.cnblogs.com/SavionZhang/p/11200139.html>
C# 7.1
C#7.1 随 VS2017 v15.3 发布(2017年8月)。 自 Visual Studio 2017 版本 15.3
<https://visualstudio.microsoft.com/vs/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link>
和 .NET Core 2.0 SDK
<https://docs.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-core-2-0> 起,开始随附
C# 7.1。
具体新增功能请查看 C#7.1 新增功能 <https://www.cnblogs.com/SavionZhang/p/11199958.html>
C# 7.0 C#7.0 于 2017年3月 随 .NET 4.7 和 VS2017 发布。
C# 7.0 向 C# 语言添加了许多新功能:具体请查看 C#7.0 新增功能
<https://www.cnblogs.com/SavionZhang/p/11197230.html>
C# 6.0 C#6.0 在 2015 年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 新增功能 <https://www.cnblogs.com/SavionZhang/p/11195396.html>
除了发布此版本,他们还做了另一件事,虽然这件事本身与传统的语言功能无关。 他们发布了 Roslyn 编译器即服务
<https://github.com/dotnet/roslyn>。 C# 编译器现在是用 C# 编写的,你可以使用编译器作为编程工作的一部分。
C# 5.0 C#5.0 在 2012 年2月随着.NET Framework 4.5 一同发布,后期发布了.NET Framework
4.5.1,4.5.2。5.0 版是C#语言有针对性的一个版本。 对此版本中所做的几乎所有工作都归入另一个突破性语言概念:适用于异步编程的 async 和
await 模型。 C#5.0 新增功能01 异步编程
<https://www.cnblogs.com/SavionZhang/p/11192305.html> C#5.0 新增功能02 调用方信息
<https://www.cnblogs.com/SavionZhang/p/11192351.html> C# 4.0 C# 4.0 版和 Visual
Studio 2010 一起发布于 2010 年4月,对应 .NET Framework 4.0。C# 4.0 版很难达到 3.0 版的创新水平。 在 3.0
版中,C# 已经完全从 Java 的阴影中脱颖而出,崭露头角。 很快成为一种简洁精炼的语言。此版本引入了以下新功能: C#4.0 新增功能01 动态绑定
(dynamic 类型) <https://www.cnblogs.com/SavionZhang/p/11189240.html> C#4.0
新增功能02 命名实参和可选实参 <https://www.cnblogs.com/SavionZhang/p/11189887.html> C#4.0
新增功能03 泛型中的协变和逆变 <https://www.cnblogs.com/SavionZhang/p/11190208.html> C#4.0
新增功能04 嵌入的互操作类型 <https://www.cnblogs.com/SavionZhang/p/11190918.html> C# 3.0
C# 3.0 版和 Visual Studio 2008 一起发布于 2007 年下半年,但完整的语言功能是在 .NET Framework 3.5
版中发布的。 此版本标示着 C# 发展过程中的重大更改。 C# 成为了真正强大的编程语言。
下面列出的功能中大多数似乎都是不可或缺,难以分割的。 它们的组合都是经过巧妙布局。 我们通常认为 C# 版本的杀手锏是查询表达式,也就是语言集成查询
(LINQ)。LINQ 的构造可以建立在更细微的视图检查表达式树、Lambda 表达式以及匿名类型的基础上。 不过无论如何 C# 3.0
都提出了革命性的概念。 C# 3.0 开始为 C# 转变为面向对象/函数式混合语言打下基础。
C#3.0 新增功能01 自动实现的属性
<https://www.cnblogs.com/SavionZhang/p/11170130.html> C#3.0 新增功能02 匿名类型
<https://www.cnblogs.com/SavionZhang/p/11170837.html> C#3.0 新增功能03 隐式类型本地变量
<https://www.cnblogs.com/SavionZhang/p/11171103.html> C#3.0 新增功能04 扩展方法
<https://www.cnblogs.com/SavionZhang/p/11172412.html> C#3.0 新增功能05 分部方法
<https://www.cnblogs.com/SavionZhang/p/11172592.html> C#3.0 新增功能06 对象和集合初始值设定项
<https://www.cnblogs.com/SavionZhang/p/11172765.html> C#3.0 新增功能07 查询表达式
<https://www.cnblogs.com/SavionZhang/p/11174256.html> C#3.0 新增功能08 Lambda表达式
<https://www.cnblogs.com/SavionZhang/p/11174826.html> C#3.0 新增功能09 LINQ 基础01
语言集成查询 <https://www.cnblogs.com/SavionZhang/p/11176275.html> C#3.0 新增功能09
LINQ 基础02 LINQ 查询简介 <https://www.cnblogs.com/SavionZhang/p/11176709.html>
C#3.0 新增功能09 LINQ 基础03 LINQ 和泛型类型
<https://www.cnblogs.com/SavionZhang/p/11177243.html>
C#3.0 新增功能09 LINQ 基础04 基本 LINQ 查询操作
<https://www.cnblogs.com/SavionZhang/p/11177365.html> C#3.0 新增功能09 LINQ 基础05
使用 LINQ 进行数据转换 <https://www.cnblogs.com/SavionZhang/p/11177563.html> C#3.0
新增功能09 LINQ 基础06 LINQ 查询操作中的类型关系
<https://www.cnblogs.com/SavionZhang/p/11177729.html> C#3.0 新增功能09 LINQ
基础07 LINQ 中的查询语法和方法语法 <https://www.cnblogs.com/SavionZhang/p/11177857.html>
C#3.0 新增功能09 LINQ 基础08 支持 LINQ 的 C# 功能
<https://www.cnblogs.com/SavionZhang/p/11177927.html> C#3.0 新增功能09 LINQ
标准查询运算符 01 概述 <https://www.cnblogs.com/SavionZhang/p/11178515.html> C#3.0
新增功能09 LINQ 标准查询运算符 02 查询表达式语法
<https://www.cnblogs.com/SavionZhang/p/11178595.html> C#3.0 新增功能09 LINQ
标准查询运算符 03 按执行方式的分类 <https://www.cnblogs.com/SavionZhang/p/11178663.html>
C#3.0 新增功能09 LINQ 标准查询运算符 04 运算
<https://www.cnblogs.com/SavionZhang/p/11179850.html> C#3.0 新增功能10 表达式树 01 简介
<https://www.cnblogs.com/SavionZhang/p/11181563.html> C#3.0 新增功能10 表达式树 02 说明
<https://www.cnblogs.com/SavionZhang/p/11181644.html> C#3.0 新增功能10 表达式树
03 支持表达式树的框架类型 <https://www.cnblogs.com/SavionZhang/p/11183396.html> C#3.0
新增功能10 表达式树 04 执行表达式 <https://www.cnblogs.com/SavionZhang/p/11183414.html>
C#3.0 新增功能10 表达式树 05 解释表达式 <https://www.cnblogs.com/SavionZhang/p/11187926.html>
C#3.0 新增功能10 表达式树 06 生成表达式
<https://www.cnblogs.com/SavionZhang/p/11187959.html> C#3.0 新增功能10 表达式树 07
翻译(转换)表达式 <https://www.cnblogs.com/SavionZhang/p/11188786.html> C# 2.0
微软于2005年11月发布了.NET Framework 2.0,同时发布了Visual Studio 2005,同步对应的C#升级到了2.0版本。
C#2.0 新增功能01 分部类与分部方法
<https://www.cnblogs.com/SavionZhang/p/11059101.html> C#2.0 新增功能02 泛型
<https://www.cnblogs.com/SavionZhang/p/11060180.html> C#2.0 新增功能03 匿名方法
<https://www.cnblogs.com/SavionZhang/p/11060526.html> C#2.0 新增功能04 可以为 null 的类型
<https://www.cnblogs.com/SavionZhang/p/11143130.html> C#2.0 新增功能05 迭代器
<https://www.cnblogs.com/SavionZhang/p/11166270.html> C#2.0 新增功能06 协变与逆变
<https://www.cnblogs.com/SavionZhang/p/11166415.html> C#2.0
新增功能07 getter/setter 单独可访问性
<https://www.cnblogs.com/SavionZhang/p/11168199.html>
除现有功能以外的其他 C# 2.0 功能:
* 方法组转换(委托)
* 静态类
* 委托推断
C# 1.2
随 Visual Studio 2003 一起提供的 C# 版本 1.2。 它对语言做了一些小改进。 最值得注意的是,从此版本开始,当
IEnumerator
<https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.ienumerator> 实现
IDisposable <https://docs.microsoft.com/zh-cn/dotnet/api/system.idisposable> 时,
foreach 循环中生成的代码会在 IEnumerator
<https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.ienumerator>
上调用 Dispose
<https://docs.microsoft.com/zh-cn/dotnet/api/system.idisposable.dispose>。
C# 1.0
C# 1.0 的主要功能包括:
* 类
<https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/classes>
* 结构
<https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/structs>
* 接口
<https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/interfaces/index>
* 事件 <https://docs.microsoft.com/zh-cn/dotnet/csharp/events-overview>
* 属性 <https://docs.microsoft.com/zh-cn/dotnet/csharp/properties>
* 委托 <https://docs.microsoft.com/zh-cn/dotnet/csharp/delegates-overview>
* 表达式
<https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/expressions>
* 语句
<https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/statements>
* 特性
<https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts/attributes/index>
C# 与 .NET Framework 对应关系 下表中列出 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
C#1.2
2003-04-24
.NET Framework 1.1
VS.NET 2003
1.1
C#2.0
C#3.0(除Linq)
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)
4
https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history
<https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history>
热门工具 换一换