C#和FrameWork版本對應關系


說明

整理C#發展歷史,了解各個階段新增功能,熟悉技術迭代歷程。

C#和FrameWork版本對應關系


C# 1.0 .NET Framework 1.0 2002-02-13
委托、事件


C# 1.1 .NET Framework 1.1 2003-04-24
​ APM(異步編程模型)


C# 2.0 .NET Framework 2.0 2005-11-07 VisualStudio 2005

  1. 泛型
  2. 分部類型
  3. 匿名方法
  4. 可以為 null 的值類型
  5. 迭代器
  6. 協變和逆變
    泛型List<T>、匿名方法、迭代器yield、可空類型nullable

C# 3.0 .NET Framework 3.0 2007-11-06
.NET Framework 3.5 2007-11-19 VisualStudio 2008

  1. 自動實現的屬性
    get;set;
  2. 匿名類型
    new { Amount = 108, Message = "Hello" };
  3. 查詢表達式
    查詢表達式 from a in b..
  4. Lambda 表達式
    Lambda表達式=>
  5. 表達式樹
    linq
  6. 擴展方法
  7. 隱式類型本地變量
    var
  8. 分部方法
    分部類和方法 partial class, partial method
  9. 對象和集合初始值設定項
    Cat cat = new Cat { Age = 10, Name = "Fluffy" };

C# 4.0 .NET Framework 4.0 2010-04-12 VisualStudio 2010

  1. 動態綁定
  2. 命名參數/可選參數
    如果不記得形參的順序,但卻知道其名稱,則可以按任意順序發送實參。
  3. 泛型協變和逆變
  4. 嵌入的互操作類型

C# 5.0 .NET Framework 4.5 2012-08-15 VisualStudio 2012

  1. 異步成員
    異步和等待(async和await) task
  2. 調用方信息特性
    (Caller Information) 可以獲取有關方法調用方的信息。可以獲取源代碼的文件路徑、源代碼中的行號和調用方的成員名稱。

C# 6.0 .NET Framework 4.6 2015-07-20 VisualStudio 2015

  1. C# 6 中的新增功能
  2. 靜態導入
    舊代碼 Math.PI * Math.Pow(Radius, 2);
    類中導入using static System.Math;后可簡化為
    PI \* Pow(Radius, 2);
  3. Expression bodied 成員
    =>運算符
  4. 自動屬性初始化表達式
    public string FirstName { get; set; } = string.Empty;
  5. 異常篩選器
    異常及When篩選器 上下關鍵字
    catch (HttpRequestException e) when (e.Message.Contains("301")) switch (obj) { case Shape shape when shape.Area == 0
  6. Null 傳播器
    A?.B?[C];
    末尾運算符
    int[] xs = new[] { 0, 10, 20, 30, 40 }; int last = xs[\^1]; **\$**
  7. 字符串內插
    Console.WriteLine(\$"Hello, {name}! Today is {date.DayOfWeek}, it's {date:HH:mm} now.");
  8. nameof 運算符

C# 7.0 .NET Framework 4.6.2 2016-08-02 VisualStudio 2017
C# 7.0 中的新增功能

  1. Out 變量
    現在可以在方法調用的參數列表中聲明 out 變量,而不是編寫單獨的聲明語句:
    int.TryParse(input, out int result) 不用聲明result
  2. 元組和析構函數
  3. 模式匹配
  4. 本地函數
  5. 已擴展 expression bodied 成員
  6. Ref 局部變量和返回結果
  7. 棄元
  8. 二進制文本和數字分隔符
  9. 引發表達式

C# 7.1 .NET Framework 4.7 2017-04-05 VisualStudio 2017 15.3

  1. async Main 方法
    應用程序的入口點可以含有 async 修飾符。
  2. default 文本表達式
    在可以推斷目標類型的情況下,可在默認值表達式中使用默認文本表達式。
  3. 推斷元組元素名稱
    在許多情況下,可通過元組初始化來推斷元組元素的名稱。
  4. 泛型類型參數的模式匹配
    可以對類型為泛型類型參數的變量使用模式匹配表達式。

C# 7.2 .NET Framework 4.7.1 2017-10-17 VisualStudio 2017 15.5

  1. 編寫安全高效代碼的技巧
    結合了多項語法改進,可使用引用語義處理值類型。
  2. 非尾隨命名參數
    命名的參數可后接位置參數。
  3. 數值文字中的前導下划線
    數值文字現可在任何打印數字前放置前導下划線。
  4. private protected 訪問修飾符
    private protected 訪問修飾符允許訪問同一程序集中的派生類。
  5. 條件 ref 表達式 現在可以引用條件表達式 (?😃 的結果。

C# 7.3 .NET Framework 4.7.2 2018-04-30 VisualStudio 2017 15.7

  1. 無需固定即可訪問固定的字段。
  2. 可以重新分配 ref 本地變量。
  3. 可以使用 stackalloc 數組上的初始值設定項。
  4. 可以對支持模式的任何類型使用 fixed 語句。
  5. 可以使用其他泛型約束。

C# 8.0 .NET Framework 4.8 2019-04-18
C# 8.0 版是專門面向 .NET C# Core 的第一個主要 C# 版本。 一些功能依賴於新的 CLR 功能,而其他功能依賴於僅在 .NET Core 中添加的庫類型。 C# 8.0 向 C# 語言添加了以下功能和增強功能:
C# 8.0 中的新增功能


C# 9.0 .NET 5 2020-09-04
C# 9.0 中的新增功能


.NET Core


.NET Core 1.0 2016-06-27
.NET Core 2.0 2016-08-14 .NET Core 2.0 的新增功能
.NET Core 2.1 2018-05-30 .NET Core 2.1 的新增功能
.NET Core 2.2 2018-12-04 .NET Core 2.2 的新增功能
.NET Core 3.0 2019-09-23 .NET Core 3.0 的新增功能
.NET Core 3.1 2019-12-03 .NET Core 3.1 的新增功能
.NET 5 2020-10-13 What's new in .NET 5


官方版本歷史:
https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history


免責聲明!

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



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