C#最初是在2002年随.NET Framework 1.0引入的,此后不断进步发展。 下表列出了每个版本的 C# 中引入的重要功能:
版本 | .Net Framework | Visual Studio | 重要的功能 |
---|---|---|---|
C# 1.0 | .NET Framework 1.0/1.1 | Visual Studio .NET 2002 | 类 class 结构 struct 接口 interface 事件 event 属性 property 委托 Delegate 运算符和表达式 Operator and expression 语句 statements, 特性 Attribute |
C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 | 泛型 Generics 部分类 Partial types 匿名方法 Anonymous methods 迭代器 Iterators 可空类型 Nullable types 属性 可配置 private Private getter/setter (properties) 方法组转换 Method group conversions (delegates) 协变和逆变 Covariance and Contra-variance 静态类 Static classes |
C# 3.0 | .NET Framework 3.0\3.5 | Visual Studio 2008 | var 隐式类型本地变量 Implicitly typed local variables 对象和集合初始始设定 Object and collection initializers 自动实现属性 Auto-Implemented properties 匿名类型 Anonymous types 扩展方法 Extension methods 查询表达式 linq Query expressions Lambda表达式 Lambda expressions 表达式树 Expression trees 部分方法 Partial Methods |
C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 | 动态绑定 Dynamic binding (late binding) 命名参数 可选参数 Named and optional arguments 泛型协变和逆变 Generic co- and contravariance 嵌入的互操作类型 Embedded interop types |
C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 | 异步编程 Async features 调用方信息 Caller information |
C# 6.0 | .NET Framework 4.6 | Visual Studio 2013/2015 | 静态导入 Static imports 异常筛选器 Exception Filter when 自动属性初始化 Auto-property initializer 表达式主体定义表达式主体定义 Expression Bodied Methods Null 传播器 Null propagator?. 和 ?[] nameof 运算符 nameof operator 字符串内插 String Interpolation Catch/Finally 块中的 Await Await in catch block |
C# 7.0 | .NET Core 2.0 | Visual Studio 2017 | out 变量 out variables 元组和析构函数 Tuples and deconstruction 模式匹配 Pattern Matching 本地函数 Local functions 弃元 discard more.. |
C# 8.0 | .NET Core 3.0 | Visual Studio 2019 | 只读成员 Readonly members 默认接口方法 Default interface methods using 声明 Using declarations 静态本地函数 Static local functions 可处置的 ref 结构 Disposable ref structs 可空引用类型 Nullable reference types 异步流 async stream 索引和范围 index and range words[1..4] ??= null合并赋值 more.. |
C# 9.0 | .NET 5.0 | Visual Studio 2019 | Record 类型 仅限初始化的设置 init only setters new(), fit and finish features 支持代码生成器 support for code generators |
C# 10.0 | .NET 6.0 | Visual Studio 2022 | Source Generator v2 泛型Attribute CallerArgumentExpression Lambda 支持 Attribute, 支持指定返回类型, 支持 ref 、in 、out namespace 不用大括号 |
在下一节中了解如何为 C# 设置开发环境。
参考文档 https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history