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# 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# 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 新增功能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 表達式樹 03 支援表達式樹的框架類型
C#3.0 新增功能10 表達式樹 07 翻譯(轉換)表達式
C# 2.0
微軟於2005年11月發布了.NET Framework 2.0,同時發布了Visual Studio 2005,同步對應的C#升級到了2.0版本。
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