1. 程式人生 > >C#各版本新增加功能

C#各版本新增加功能

  本系列文章主要整理並介紹 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 在 2012 年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.1
C#1.2

2003-04-24

.NET Framework 1.1

VS.NET 2003

1.1

C#2.0
C#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-7-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-4-30

.NET Framework 4.7.2

VS2017(v15.7)

4

C#8.0

2019-4-18

.NET Framework 4.8

VS2019(v16)

4

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