C#1.0~10.0特性总结

前言:C#的发展已经有十多年的时间了,目前已经更新到8.0版本,本文参考官网及其他博主文章梳理了各个版本包括的常用特性,后续会不断更新完善,如有错误,欢迎斧正

C#版本、.NET、VS版本对应关系
C#版本 发布时间 .NET版本 VS版本 CLR版本
1.0 2002-02-13 .NET Framework 1.0 VS.NET 2002 1.0
1.1、1.2

2003-04-24

.NET Framework 1.1 VS.NET 2003 1.1
2.0 2005-11-07 .NET Framework 2.0 VS2005 2.0
3.0 2006-11 .NET Framework 3.0 VS2008 2.0
3.0 2007-11-19 .NET Framework 3.5 VS2008 2.0
4.0 2010-4-12 .NET Framework 4.0 VS2010 4
5.0 2012-02-20 .NET Framework 4.5 VS2012 4
5.0 2013-10-17 .NET Framework 4.5.1 VS2013 4
5.0 2014-05-05 .NET Framework 4.5.2 VS2013 4
6.0 2015-07-26 .NET Framework 4.6 VS2015(v14) 4
6.0 2015-11-30 .NET Framework 4.6.1 VS2015(v14) 4
7.0 2016-08-02 .NET Framework 4.6.2 VS2017(v15) 4
7.1 2017-04-05 .NET Framework 4.7 VS2017(v15.3) 4
7.2 2017-10-17 .NET Framework 4.7.1 VS2017(v15.5) 4
7.3 2018-04-30 .NET Framework 4.7.2 VS2017(v15.7) 4
8.0 2019-04-18 .NET Framework 4.8 VS2019(v16) 4
9.0 未发布 .NET 5    
10.0 未发布 .NET 6    

注:官网C#发展历史:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history

以下是C#各版本新增的主要特性

C#1.0

  • 结构
  • 接口
  • 事件
  • 属性
  • 委托
  • 运算符和表达式
  • 语句
  • 特性
C#2.0
  • 泛型
  • 分部类型
  • 匿名方法
  • 可以为null的值类型
  • 迭代器
  • 斜变和逆变
  • getter/setter 单独可访问性
  • 方法组转换
  • 静态类
  • 委托推断
C#3.0
  • 自动实现的属性
  • 匿名类型
  • 查询表达式
  • Lambda 表达式
  • 表达式树
  • 扩展方法
  • 隐式类型本地变量
  • 分部方法
  • 对象和集合初始值设定项
C#4.0
  • 动态绑定
  • 命名参数/可选参数
  • 泛型协变和逆变
  • 嵌入的互操作类型
C#5.0
  • 异步成员
  • 调用方信息特性
C#6.0
  • 静态导入
  • 异常筛选器
  • 自动属性初始化表达式
  • Expression bodied 成员
  • Null 传播器
  • 字符串内插
  • nameof 运算符
  • 索引初始化表达式
  • Catch/Finally 块中的 Await
  • 仅限 getter 属性的默认值
C#7.0
  • Out 变量
  • 元组和析构函数
  • 模式匹配
  • 本地函数
  • 已扩展 expression bodied 成员
  • Ref 局部变量和返回结果
  • 弃元
  • 二进制文本和数字分隔符
  • 引发表达式
C#7.1
  • async Main 方法
  • default 文本表达式
  • 推断元组元素名称
  • 泛型类型参数的模式匹配
C#7.2
  • 编写安全高效代码的技巧
  • 非尾随命名参数
  • 数值文字中的前导下划线
  • private protected 访问修饰符
  • 条件 ref 表达式
C#7.3
  • 无需固定即可访问固定的字段。
  • 可以重新分配 ref 本地变量。
  • 可以使用 stackalloc 数组上的初始值设定项。
  • 可以对支持模式的任何类型使用 fixed 语句。
  • 可以使用更多泛型约束。
C#8.0
  • Readonly 成员
  • 默认接口方法
  • 模式匹配增强功能:
    • Switch 表达式
    • 属性模式
    • 元组模式
    • 位置模式
  • Using 声明
  • 静态本地函数
  • 可处置的 ref 结构
  • 可为空引用类型
  • 异步流
  • 索引和范围
  • Null 合并赋值
  • 非托管构造类型
  • 嵌套表达式中的 Stackalloc
  • 内插逐字字符串的增强功能
C#9.0
  • 记录
  • 仅限 Init 的资源库
  • 顶级语句
  • 模式匹配增强功能
  • 性能和互操作性
    • 本机大小的整数
    • 函数指针
    • 禁止发出 localsinit 标志
  • 调整和完成功能
    • 目标类型的 new 表达式
    • static 匿名函数
    • 目标类型的条件表达式
    • 协变返回类型
    • 扩展 GetEnumerator 支持 foreach 循环
    • Lambda 弃元参数
    • 本地函数的属性
  • 支持代码生成器
    • 模块初始值设定项
    • 分部方法的新功能
C#10.0
  • global using 指令
  • 文件范围的命名空间声明
  • 扩展属性模式
  • 可使用 const 内插字符串
  • 记录类型可密封 ToString()
  • 在同一析构中可同时进行赋值和声明
  • 可在方法上使用 AsyncMethodBuilder 属性

 

posted @ 2021-09-23 11:24  #疆先绅#  阅读(799)  评论(1编辑  收藏  举报