C#各版本新增加功能(系列文章)

  • 2019 年 10 月 4 日
  • 筆記

  本系列文章主要整理並介紹 C# 各版本的新增功能。

C# 8.0

C#8.0 於 2019年4月 隨 .NET Framework 4.8 與 Visual Studio 2019 一同發布,但是當前處於預覽狀態。預計在2019年9月正式發布。

目前提供以下功能可供試用:

  • Readonly 成員
  • 默認介面成員【*重要,突破性的變革*】請參考:C#8.0 中使用默認介面成員更新介面
  • 模式匹配增強功能:Using 聲明
    • Switch 表達式
    • 屬性模式
    • 元組模式
    • 位置模式
  • 靜態本地函數
  • 可處置的 ref 結構
  • 可為空引用類型
  • 非同步流【*重要*】
  • 索引和範圍

具體新增功能請查看 C#8.0 新增功能

C# 7.3

C#7.3 隨 VS2017 v15.7 發布(2018年5月)。 自 Visual Studio 2017 版本 15.7 和 .NET Core 2.1 SDK 起,開始隨附 C# 7.3。

具體新增功能請查看 C#7.3 新增功能

C# 7.2

C#7.2 隨 VS2017 v15.5 發布(2017年11月)。自 Visual Studio 2017 版本 15.5 和 .NET Core 2.0 SDK 起,開始隨附 C# 7.2。

具體新增功能請查看 C#7.2 新增功能

C# 7.1

C#7.1 隨 VS2017 v15.3 發布(2017年8月)。 自 Visual Studio 2017 版本 15.3 和 .NET Core 2.0 SDK 起,開始隨附 C# 7.1。

具體新增功能請查看 C#7.1 新增功能

C# 7.0

C#7.0 於 2017年3月 隨 .NET 4.7 和 VS2017 發布。

C# 7.0 向 C# 語言添加了許多新功能:具體請查看 C#7.0 新增功能

C# 6.0

C#6.0 在 2015 年7月隨著.NET Framework 4.6 一同發布,後期發布了.NET Framework 4.6.1,4.6.2。

C# 在 3.0 版和 5.0 版對面向對象的語言添加了主要的新功能。 在 6.0 版中,它不再推出主導性的殺手鐧,而是發布了很多使得 C# 編程更有效率的小功能。這些功能每一個都很有趣。 但從整體來看,可以發現一個有趣的模式。 在此版本中,C# 消除語言樣本,讓程式碼更簡潔且更具可讀性。 所以對喜歡簡潔程式碼的用戶來說,此語言版本非常成功。

具體功能請查看 C#6.0 新增功能

  除了發布此版本,他們還做了另一件事,雖然這件事本身與傳統的語言功能無關。 他們發布了 Roslyn 編譯器即服務。 C# 編譯器現在是用 C# 編寫的,你可以使用編譯器作為編程工作的一部分。

C# 5.0

C#5.0 在 2012 年2月隨著.NET Framework 4.5 一同發布,後期發布了.NET Framework 4.5.1,4.5.2。5.0 版是C#語言有針對性的一個版本。 對此版本中所做的幾乎所有工作都歸入另一個突破性語言概念:適用於非同步編程的 async 和 await 模型。

C#5.0 新增功能01 非同步編程

C#5.0 新增功能02 調用方資訊

C# 4.0

C# 4.0 版和 Visual Studio 2010 一起發佈於 2010 年4月,對應 .NET Framework 4.0。C# 4.0 版很難達到 3.0 版的創新水平。 在 3.0 版中,C# 已經完全從 Java 的陰影中脫穎而出,嶄露頭角。 很快成為一種簡潔精鍊的語言。此版本引入了以下新功能:

C#4.0 新增功能01 動態綁定 (dynamic 類型)

C#4.0 新增功能02 命名實參和可選實參

C#4.0 新增功能03 泛型中的協變和逆變

C#4.0 新增功能04 嵌入的互操作類型

C# 3.0

C# 3.0 版和 Visual Studio 2008 一起發佈於 2007 年下半年,但完整的語言功能是在 .NET Framework 3.5 版中發布的。 此版本標示著 C# 發展過程中的重大更改。 C# 成為了真正強大的程式語言。

下面列出的功能中大多數似乎都是不可或缺,難以分割的。 它們的組合都是經過巧妙布局。 我們通常認為 C# 版本的殺手鐧是查詢表達式,也就是語言集成查詢 (LINQ)。LINQ 的構造可以建立在更細微的視圖檢查表達式樹、Lambda 表達式以及匿名類型的基礎上。 不過無論如何 C# 3.0 都提出了革命性的概念。 C# 3.0 開始為 C# 轉變為面向對象/函數式混合語言打下基礎。

C#3.0 新增功能01 自動實現的屬性

C#3.0 新增功能02 匿名類型

C#3.0 新增功能03 隱式類型本地變數

C#3.0 新增功能04 擴展方法

C#3.0 新增功能05 分部方法

C#3.0 新增功能06 對象和集合初始值設定項

C#3.0 新增功能07 查詢表達式

C#3.0 新增功能08 Lambda表達式

C#3.0 新增功能09 LINQ 基礎01 語言集成查詢

C#3.0 新增功能09 LINQ 基礎02 LINQ 查詢簡介

C#3.0 新增功能09 LINQ 基礎03 LINQ 和泛型類型

C#3.0 新增功能09 LINQ 基礎04 基本 LINQ 查詢操作

C#3.0 新增功能09 LINQ 基礎05 使用 LINQ 進行數據轉換

C#3.0 新增功能09 LINQ 基礎06 LINQ 查詢操作中的類型關係

C#3.0 新增功能09 LINQ 基礎07 LINQ 中的查詢語法和方法語法

C#3.0 新增功能09 LINQ 基礎08 支援 LINQ 的 C# 功能

C#3.0 新增功能09 LINQ 標準查詢運算符 01 概述

C#3.0 新增功能09 LINQ 標準查詢運算符 02 查詢表達式語法

C#3.0 新增功能09 LINQ 標準查詢運算符 03 按執行方式的分類

C#3.0 新增功能09 LINQ 標準查詢運算符 04 運算

C#3.0 新增功能10 表達式樹 01 簡介

C#3.0 新增功能10 表達式樹 02 說明

C#3.0 新增功能10 表達式樹 03 支援表達式樹的框架類型

C#3.0 新增功能10 表達式樹 04 執行表達式

C#3.0 新增功能10 表達式樹 05 解釋表達式

C#3.0 新增功能10 表達式樹 06 生成表達式

C#3.0 新增功能10 表達式樹 07 翻譯(轉換)表達式

C# 2.0

微軟於2005年11月發布了.NET Framework 2.0,同時發布了Visual Studio 2005,同步對應的C#升級到了2.0版本。

C#2.0 新增功能01 分部類與分部方法

C#2.0 新增功能02 泛型

C#2.0 新增功能03 匿名方法

C#2.0 新增功能04 可以為 null 的類型

C#2.0 新增功能05 迭代器

C#2.0 新增功能06 協變與逆變

C#2.0 新增功能07 getter/setter 單獨可訪問性

除現有功能以外的其他 C# 2.0 功能:

  • 方法組轉換(委託)
  • 靜態類
  • 委託推斷

C# 1.2

隨 Visual Studio 2003 一起提供的 C# 版本 1.2。 它對語言做了一些小改進。 最值得注意的是,從此版本開始,當 IEnumerator 實現 IDisposable 時,foreach 循環中生成的程式碼會在 IEnumerator 上調用 Dispose。

C# 1.0

C# 1.0 的主要功能包括:

C# 與 .NET Framework 對應關係

下表中列出 C#、.NET、VS版本對應關係

C#版本

發布時間

.NET 版本

VS版本

CLR版本

C#1.0

2002-02-13

.NET Framework 1.0

VS.NET 2002

1.0

C#1.1C#1.2

2003-04-24

.NET Framework 1.1

VS.NET 2003

1.1

C#2.0C#3.0(除Linq)

2005-11-07

.NET Framework 2.0

VS2005

2.0

C#3.0(除Linq)

2006-11

.NET Framework 3.0

VS2008

2.0

C#3.0

2007-11-19

.NET Framework 3.5

VS2008

2.0

C#4.0

2010-4-12

.NET Framework 4.0

VS2010

4

C#5.0

2012-02-20

.NET Framework 4.5

VS2012

4

C#5.0

2013-10-17

.NET Framework 4.5.1

VS2013

4

C#5.0

2014-05-05

.NET Framework 4.5.2

VS2013

4

C#6.0

2015-07-26

.NET Framework 4.6

VS2015(v14)

4

C#6.0

2015-11-30

.NET Framework 4.6.1

VS2015(v14)

4

C#7.0

2016-08-02

.NET Framework 4.6.2

VS2017(v15)

4

C#7.1

2017-04-05

.NET Framework 4.7

VS2017(v15.3)

4

C#7.2

2017-10-17

.NET Framework 4.7.1

VS2017(v15.5)

4

C#7.3

2018-04-30

.NET Framework 4.7.2

VS2017(v15.7)

4

C#8.0

2019-04-18

.NET Framework 4.8

VS2019(v16)

4

https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-version-history

Tags: