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 屬性

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM