自学内容网 自学内容网

C#语言发展历史

1.C# 1.0

        发布于2002年1月

        和 Visual Studio .NET 2002 一起发布的 C# 版本 1.0 非常像 Java。其目标是成为一种“简单、现代、通用的面向对象的语言”。当时,看起来像 Java 意味着它实现了早期的设计目标。

        不过如果现在回顾 C# 1.0,你会觉得有点晕。 它没有习以为常的内置异步功能和以泛型为中心的巧妙功能。 其实它完全不具备泛型。LINQ尚不可用。 这些新增内容需 要几年才能推出。

        与现在的 C# 相比,C# 1.0 版少了很多功能。 你会发现自己的代码很冗长。 不过凡事总

要有个开始。 在 Windows 平台上,C# 1.0 版是 Java 的一个可行的替代之选。

2.C# 1.2

        发布于2003年4月

        随 Visual Studio .NET 2003 一起提供的 C# 版本 1.2。 它对语言做了一些小改进。 最值得注意的是,从此版本开始,当 IEnumerator 实现 IDisposable 时,foreach 循环中生成的代码会在 IEnumerator上调用 Dispose。

3.C# 2.0

        发布于2005年11月

        C# 2.0 新增了泛型、分部类型、匿名方法、可为null的值类型、迭代器、协变和逆变、getter/setter 单独可访问性、方法组转换(委托)、静态类、委托推断等。

        虽然 C# 一开始是通用的面向对象 (OO) 语言,但 C# 2.0 版很快改变了这一点。 通过泛型,类型和方法可以操作任意类型,同时保持类型安全性。

        C# 2.0 版引入了迭代器。 简单来说,迭代器允许使用 foreach 循环来检查 List (或其他可枚举类型)中的所有项。 拥有迭代器是该语言最重要的一部分,显著提升了语言的可读性以及人们推出代码的能力。

4.C# 3.0

        发布于2007年11月

        C# 3.0 版和 Visual Studio 2008 一起发布于 2007 年下半年,但完整的语言功能是在 .NETFramework 3.5 版中发布的。 此版本标示着 C# 发展过程中的重大更改。 C# 成为了真正强大的编程语言。

        此 C# 版本的杀手锏功能是查询表达式,也就是语言集成查询 (LINQ)。 LINQ 的构造可以建立在更细微的视图检查表达式树、Lambda 表达式以及匿名类型的基础上。 不过无论如何 C# 3.0 都提出了革命性的概念。 C# 3.0 开始为 C# 转变为面向对象/函数式混合语言奠定基础。

5.C# 4.0

        发布于2010年4月

        C# 4.0 版随 Visual Studio 2010 一起发布,主要功能是引入 dynamic 关键字。通过使用 dynamic 关键字,可以创建和动态类型语言(例如JavaScript)类似的构造。

6.C# 5.0

        发布于2012年8月

        C# 版本 5.0 随 Visual Studio 2012 一起发布,是该语言有针对性的一个版本。 对此版本中所做的几乎所有工作都归入另一个突破性语言概念:适用于异步编程的 async 和await 模型。

7.C# 6.0

        发布于2015年7月

        版本 6.0 随 Visual Studio 2015 一起发布,发布了很多使得 C# 编程更有效率的小功能:静态导入、异常筛选器、自动属性初始化表达式、字符串内插、nameOf运算符、索引初始化表达式、Catch/Finally 块中的 Await、仅限 getter 属性的默认值。

        发布了 Roslyn 编译器即服务。

8.C# 7.0

        发布于2017年3月

        C# 7.0 版已与 Visual Studio 2017 一起发布。 此版本继承和发展了 C# 6.0。缩减了使用 out 关键字的变量声明,并通过元组实现了多个返回值。

9.C# 7.1

        发布于2017年8月

        此版本增加了语言版本选择配置元素、三个新的语言功能和新的编译器行为。

        此版本中新增的语言功能包括:

        asyncMain 方法:应用程序的入口点可以含有 async 修饰符。

        default 文本表达式:在可以推断目标类型的情况下,可在默认值表达式中使用默认文本表达式。

        推断元组元素名称:在许多情况下,可通过元组初始化来推断元组元素的名称。

        泛型类型参数的模式匹配:可以对类型为泛型类型参数的变量使用模式匹配表达式。

最后,编译器有 -refout 和 -refonly 两个选项,可用于控制引用程序集生成。

10.C# 7.2

        发布于2017年11月

11.C# 7.3

        发布于2018年5月

12.C# 8.0

        发布于2019年9月

        C# 8.0 版是专门面向 .NET C# Core 的第一个主要 C# 版本。 一些功能依赖于新的公共语言运行时 (CLR) 功能,而其他功能则依赖于仅在 .NET Core 中添加的库类型。

13.C# 9.0

        发布于2020年11月

        C# 9 随 .NET 5 一起发布。 它是面向 .NET 5 版本的任何程序集的默认语言版本。它包含以下新功能和增强功能:记录、顶级语句、模式匹配增强:关系模式和逻辑模式等。

        C# 9 版本继续致力于让 C# 成为一种新式通用编程语言。 功能继续支持新式工作负载和应用程序类型。

14.C# 10.0

        发布于2021年11月

15.C# 11.0

        发布于2022年11月

16.C# 12.0

        发布于2023年11月

        C# 12 中增加了以下功能:

                主构造函数 - 可以创建任意 class 或 struct 类型的主构造函数。

                集合表达式 - 一种用于指定集合表达式的新语法,包括展开运算符 ( .. ),可展开任何集合。

                内联数组 - 使用内联数组,你可以创建固定大小的 struct 类型数组。

                Lambda 表达式中的可选参数 - 可以为 Lambda 表达式的参数定义默认值。

                ref readonly 参数 - ref readonly 参数可以让可能使用 ref 参数或 in 参数的 API 更清晰。

                创建任何类型的别名 - 可以使用 using 别名指令创建任何类型的别名,而不仅仅是命名类型。

                试验性属性 - 指示试验性功能。

                拦截器 - 已作为预览功能发布。

        总体而言,C# 12 提供的新功能可让你更高效地编写 C# 代码。 你已经知道的语法可以在

更多地方使用。 其他语法可实现相关概念的一致性。

17.C# 13.0(目前最新版)

        发布于2024年11月

        C# 13 包括以下新增功能。 可以使用最新的 Visual Studio 2022 版本或 .NET 9 预览版 SDK 尝试这些功能。

        新的转义序列 - \e:可以使用 \e 作为 ESCAPE 字符 Unicode U+001B 的字符文本转义序列。

        方法组自然类型改进

        对象初始值设定项中的隐式索引器访问:对象初始值设定项表达式中现在允许隐式“从末尾开始”索引运算符 ^ 。


原文地址:https://blog.csdn.net/u011301348/article/details/143519474

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!