截至 2024 年,C# 已经发布了多个主要版本,每个版本都引入了新的特性和改进,
以提升开发效率、性能和语言的表达能力。以下是 C# 版本的完整发布历史:
C# 版本历史
| 版本 | 发布年份 | 主要特性 | 依赖的 .NET 版本 |
|---|---|---|---|
| C# 1.0 | 2002 | 基础语法、类、结构、接口、属性、委托等 | .NET Framework 1.0 / 1.1 |
| C# 2.0 | 2005 | 泛型、匿名方法、可空类型、迭代器、部分类 | .NET Framework 2.0 |
| C# 3.0 | 2007 | LINQ、Lambda 表达式、匿名类型、扩展方法、自动属性 | .NET Framework 3.5 |
| C# 4.0 | 2010 | 动态类型、可选参数、命名参数、协变/逆变 | .NET Framework 4.0 |
| C# 5.0 | 2012 | async/await 异步编程、调用方信息属性 |
.NET Framework 4.5 |
| C# 6.0 | 2015 | 表达式主体成员、字符串插值、Null 条件运算符 | .NET Framework 4.6 |
| C# 7.0 | 2017 | 元组、模式匹配、局部函数、ref 返回 |
.NET Core 2.0 / .NET Framework 4.6.2 |
| C# 7.1 | 2017 | 默认字面量 default、异步 Main 方法 |
.NET Core 2.0 |
| C# 7.2 | 2017 | in 参数、readonly struct |
.NET Core 2.0 |
| C# 7.3 | 2018 | 增强泛型约束、ref 局部变量 |
.NET Core 2.1 |
| C# 8.0 | 2019 | 可空引用类型、异步流、范围和索引 | .NET Core 3.0 / .NET Framework 4.8 |
| C# 9.0 | 2020 | 记录类型(record)、顶级语句、init 访问器 |
.NET 5 |
| C# 10.0 | 2021 | 全局 using 指令、文件作用域命名空间、结构改进 |
.NET 6 |
| C# 11.0 | 2022 | 原始字符串插值、required 成员、通用数学 |
.NET 7 |
| C# 12.0 | 2023 | primary constructor、默认 lambda 参数值 |
.NET 8 |
C# 各版本详细介绍
1. C# 1.0(2002,.NET Framework 1.0/1.1)
- 面向对象编程基础:类、接口、结构、继承等。
- 委托(Delegates)、事件(Events)。
- 异常处理(
try-catch-finally)。 foreach语法。- 反射(Reflection)。
2. C# 2.0(2005,.NET Framework 2.0)
- 泛型(Generics),提升类型安全和性能。
- 可空类型(Nullable Types),值类型可赋值
null。 - 匿名方法(Anonymous Methods),减少委托定义的冗余。
- 迭代器(Iterators),使用
yield关键字。 - 部分类(Partial Classes),拆分类定义。
3. C# 3.0(2007,.NET Framework 3.5)
- LINQ(Language Integrated Query),数据查询能力。
- Lambda 表达式(Lambda Expressions),简化匿名方法。
- 扩展方法(Extension Methods),扩展现有类型。
- 匿名类型(Anonymous Types),无需显式声明类。
- 自动属性(Auto-Implemented Properties),简化属性声明。
var关键字,类型推断。
4. C# 4.0(2010,.NET Framework 4.0)
dynamic类型,与动态语言交互。- 命名和可选参数,减少重载方法。
- 泛型的协变/逆变(Covariance & Contravariance)。
- COM 互操作性改进。
5. C# 5.0(2012,.NET Framework 4.5)
async/await异步编程,简化异步代码。- 调用方信息(Caller Info Attributes),自动获取调用信息。
6. C# 6.0(2015,.NET Framework 4.6)
- 字符串插值(String Interpolation)。
- Null 条件运算符(
?.),简化空检查。 - 表达式主体成员(Expression-bodied Members),简化方法。
nameof关键字,获取变量或属性名称。
7. C# 7.x 系列(2017,.NET Core 2.0+)
- 元组(Tuples),返回多个值。
- 模式匹配(Pattern Matching),改进
switch语句。 - 局部函数(Local Functions)。
ref返回和局部变量,改进性能。
8. C# 8.0(2019,.NET Core 3.0)
- 可空引用类型(Nullable Reference Types),提高空值安全性。
- 异步流(Async Streams),结合
IAsyncEnumerable<T>。 - 索引和范围(Index & Range),简化数组操作。
- 默认接口实现(Default Interface Methods)。
9. C# 9.0(2020,.NET 5)
- 记录类型(Records),用于不可变对象。
- 顶级语句(Top-level Statements),简化入门代码。
init访问器,支持对象初始化。- 模式匹配增强。
10. C# 10.0(2021,.NET 6)
- 文件作用域命名空间(File-scoped Namespaces)。
- 全局 using 指令(Global Using),减少重复。
- 结构改进(Struct Improvements)。
11. C# 11.0(2022,.NET 7)
- 原始字符串插值(Raw String Literals),多行文本更易处理。
required关键字,强制要求属性初始化。- 通用数学接口,简化数值操作。
12. C# 12.0(2023,.NET 8)
- 主构造函数(Primary Constructors),简化类初始化。
- 默认 lambda 参数值,简化委托。
未来发展(C# 13.0+)
C# 预计将在 .NET 9+ 中持续优化,重点关注性能、模式匹配、AI/ML 集成等领域。
C# 版本的不断迭代,使其成为功能强大、灵活且广泛应用的现代编程语言,在**桌面、Web、云计算、移动开发、游戏开发(Unity)**等多个领域占据重要地位。
浙公网安备 33010602011771号