C#和.NET版本

      1999年,就據說微軟公司在研發一種名爲「cool」的新開發語言,而具體內幕一直是個謎,直到2000年6月26日微軟在奧蘭多舉行的「職業開發人員技術大會」(PDC 2000)上,這個謎底終於揭曉了,這種新的、先進的、面向對象的開發語言就是c#(發音爲「C sharp」)。html

版本git

描述github

C# 1.0express

.NET Framework 1.0/1.1編程

Visual Studio 2002和2003c#

C#的第一個正式發行版本。微軟從無到有創造的一個語言,專門爲.NET變成提供支持。api

C# 2.0安全

.NET Framework 2.0多線程

Visual Studio 2005框架

C#語言開始支持泛型,.NET Framework 2.0新增了支持泛型的庫。

.NET Framework 3.0

 

新增了一套API來支持分佈式通訊(Windows Communication Foundation,WCF)、

富客戶端表示(Windows Presentation Foundation,WPF)、

工做流(Windows Workflow,WF)

以及Web身份驗證(Cardspaces)

C# 3.0

.NET Framework 3.5

Visual Studio 2008

添加了對LINQ的支持,對集合操做API進行了大幅度的修改。.NET Framework 3.5對全部的API進行了擴展以支持LINQ。

C# 4.0

.NET Framework 4

Visual Studio 2010

添加了對動態類型的支持,對多線程編程API進行了大幅度改進,強調了多線程編程和核心的支持。

C# 5.0

.NET Framework 4.5

Visual Studio 2012

WinRT集成

添加了對異步方法的調用,同時不須要顯式註冊委託回調。在框架中新增了對Windows Runtime(WinRT)互操做的支持。

C# 6.0

Visual Studio 2015

C# 6.0 並非對 C# 編程的根本性改變;C# 6.0 簡化、闡明並壓縮代碼

 
 

 

C# 1.0 版

回想起來,C# 1.0 版很是像 Java。 在 ECMA 制定的設計目標中,它旨在成爲一種「簡單、現代、面向對象的常規用途語言」。 當時,它和 Java 相似,說明已經實現了上述早期設計目標。

不過若是如今回顧 C# 1.0,你會以爲有點暈。 它沒有習覺得常的內置異步功能和以泛型爲中心的巧妙功能。 其實它徹底不具有泛型。那 LINQ 呢? 尚不可用。 這些新增內容須要幾年才能推出。

與如今的 C# 相比,C# 1.0 版少了不少功能。 你會發現本身的代碼很冗長。 不過凡事總要有個開始。 在 Windows 平臺上,C# 1.0 版是 Java 的一個可行的替代之選。

C# 1.0 的主要功能包括:

C# 版本 1.2

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

C# 2.0 版

今後之後事情變得有趣起來。 讓咱們看看 C# 2.0(2005 年發佈)和 Visual Studio 2005 中的一些主要功能:

除現有功能之外的其餘 C# 2.0 功能:

  • getter/setter 單獨可訪問性
  • 方法組轉換(委託)
  • 靜態類
  • 委託推斷

C# 一開始是面向對象的 (OO) 通用語言,而 C# 2.0 版很快改變了這一點。 作好基礎準備後,他們開始追求解決一些嚴重影響開發者的難點。 且他們以顯著的方式追求這些難點。

經過泛型,類型和方法能夠操做任意類型,同時保持類型安全性。 例如,經過 List<T>,將得到 List<string> 或 List<int> 而且能夠對這些字符串或整數執行類型安全操做,同時對其進行循環訪問。 使用泛型優於建立派生自 ArrayList 的 ListInt 或者從每一個操做的 Object 強制轉換。

C# 2.0 版引入了迭代器。 簡單來講,迭代器容許使用 foreach 循環來檢查 List(或其餘可枚舉類型)中的全部項。 擁有迭代器是該語言最重要的一部分,顯著提高了語言的可讀性以及人們推出代碼的能力。

不過 C# 依然在追趕 Java 的道路上。 當時 Java 已發佈包含泛型和迭代器的版本。 可是隨着語言各自的演化,形勢很快發生了變化。

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# 轉變爲面向對象/函數式混合語言打下基礎。

具體來講,你如今能夠編寫 SQL 樣式的聲明性查詢對集合以及其餘項目執行操做。 無需再編寫 for 循環來計算整數列表的平均值,如今可改用簡單的 list.Average() 方法。 組合使用查詢表達式和擴展方法讓各類數字變得智能多了。

人們須要一些時間來掌握和吸取這種概念,不過已經逐漸作到了。 如今又過了幾年,代碼變得更簡潔,功能也更強大了。

C# 4.0 版

C# 4.0 版很難達到 3.0 版的創新水平。 在 3.0 版中,C# 已經徹底從 Java 的陰影中脫穎而出,嶄露頭角。 很快成爲一種簡潔精煉的語言。

下一版本引入了一些有趣的新功能:

嵌入的互操做類型緩和了部署難點。 泛型協變和逆變提供了更強的功能來使用泛型,但風格比較偏學術,應該最受框架和庫建立者的喜好。 命名參數和可選參數幫助消除了不少方法重載,讓使用更方便。 可是這些功能都沒有徹底改變模式。

主要功能是引入 dynamic 關鍵字。 在 C# 4.0 版中引入 dynamic 關鍵字讓用戶能夠替代編譯時類型上的編譯器。 經過使用 dynamic 關鍵字,能夠建立和動態類型語言(例如 JavaScript)相似的構造。 能夠建立 dynamic x = "a string" 再向它添加六個,而後讓運行時理清下一步操做。

動態綁定存在出錯的可能性,不過同時也爲你提供了強大的語言功能。

C# 5.0 版

C# 5.0 版是該語言有針對性的一個版本。 對此版本中所作的幾乎全部工做都納入另外一個突破性語言概念:適用於異步編程的 async 和 await 模型。 下面是主要功能列表:

請參閱

調用方信息特性讓你能夠輕鬆檢索上下文的信息,不須要採用大量樣本反射代碼。 這在診斷和日誌記錄任務中也頗有用。

可是 async 和 await 纔是此版本真正的主角。 C# 在 2012 年推出這些功能時,將異步引入語言做爲最重要的組成部分,另現狀大爲改觀。 若是你之前處理過冗長的運行操做以及實現回調的 Web,應該會愛上這項語言功能。

C# 6.0 版

C# 在 3.0 版和 5.0 版對面向對象的語言添加了主要的新功能。 在 6.0 版中,它再也不推出主導性的殺手鐗,而是發佈了不少使得 C# 編程更有效率的小功能。 如下介紹了部分功能:

其餘新功能包括:

  • Catch/Finally 塊中的 Await
  • 僅限 getter 屬性的默認值

這些功能每個都頗有趣。 但從總體來看,能夠發現一個有趣的模式。 在此版本中,C# 消除語言樣本,讓代碼更簡潔且更具可讀性。 因此對喜歡簡潔代碼的用戶來講,此語言版本很是成功。

除了發佈此版本,他們還作了另外一件事,雖然這件事自己與傳統的語言功能無關。 他們發佈了 Roslyn 編譯器即服務。 C# 編譯器如今是用 C# 編寫的,你可使用編譯器做爲編程工做的一部分。

C# 7.0 版

C# 7.0 版是最新的主版本。 雖然該版本繼承和發展了 C# 6.0,但不包含編譯器即服務。 如下介紹了部分新增功能:

其餘功能包括:

其餘的基礎功能詳解

1.  C#高級功能(四)擴展方法和索引

2. C#高級功能(三)Action、Func,Tuple

3. C#高級功能(二)LINQ 和Enumerable類

4. C#高級功能(一)Lambda 表達式

5. C#中泛型的解釋(object,list,var,dynamic的區別)

6. C#中委託

7. C#和.NET版本對比

相關文章
相關標籤/搜索