zoukankan      html  css  js  c++  java
  • 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 属性
    不积跬步,无以至千里;不积小流,无以成江海。ヾ(◍°∇°◍)ノ゙
  • 相关阅读:
    【SignalR学习系列】3. SignalR实时高刷新率程序
    【SignalR学习系列】4. SignalR广播程序
    【SignalR学习系列】5. SignalR WPF程序
    python gb2312 转换为 utf-8
    爬虫 需要什么样的 CPU,内存 和带宽
    TypeError: sequence item 0: expected string, Tag found
    MySQL 数据的 截取,数据清洗
    MySQL (1366, "Incorrect string value: '\xF0\x9F\x8E\xAC\xE5\x89...' for column 'description' at row 1")
    微博爬虫 ----- 微博发布时间清洗
    ReferenceError: weakly-referenced object no longer exists Python kafka
  • 原文地址:https://www.cnblogs.com/jiangxianshen/p/15263122.html
Copyright © 2011-2022 走看看