C 2 0 新增功能

2021-05-13 07:44:30 字數 1275 閱讀 6146

泛型

該語言中新增了一些泛型型別,使得程式設計師能夠實現程度很高的**重用,獲得更高的集合類效能。泛型型別只存在 arity 上的不同。也可以將引數強制為特定的型別。有關更多資訊,請參見泛型型別引數。

迭代器

迭代器使得規定 foreach 迴圈將如何迴圈訪問集合的內容變得更加容易。

分部類

分部型別定義允許將單個型別(比如某個類)拆分為多個檔案。visual studio 設計器使用此功能將它生成的**與使用者**分離。

可空型別

可空型別允許變數包含未定義的值。在使用資料庫和其他可能包含未含有具體值的元素的資料結構時,可以使用可空型別。

匿名方法

現在,可以將**塊作為引數來傳遞。在本應使用委託的任何地方,都可以使用**塊來取代:不需要定義新的方法。

命名空間別名限定符

命名空間別名限定符 (::) 對訪問命名空間成員提供了更多控制。global :: 別名允許訪問可能被**中的實體隱藏的根命名空間。

靜態類

若要宣告那些包含不能例項化的靜態方法的類,靜態類就是一種安全而便利的方式。c# 1.2 版要求將類建構函式定義為私有的,以防止類被例項化。

外部程式集別名

通過 extern 關鍵字的這種擴充套件用法引用包含在同一程式集中的同一元件的不同版本。

屬性訪問器可訪問性

現在可以為屬性的 get 和 set 訪問器定義不同級別的可訪問性。

委託中的協變和逆變

現在傳遞給委託的方法在返回型別和引數方面可以具有更大的靈活性。

如何:宣告、例項化和使用委託

方法組轉換為宣告委託提供了一種更簡單的語法。

固定大小的緩衝區

在不安全的**塊中,現在可以宣告包含嵌入陣列的固定大小結構。

友元程式集

程式集可以提供對其他程式集的非公共型別的訪問。

內聯警告控制

#pragma 警告指令可用於禁用和啟用某些編譯器警告。

volatile

現在可以將 volatile 關鍵字應用於 intptr 和 uintptr。

C 2 0新增功能02 泛型

c 語言和公共語言執行時 clr 的 2.0 版本中新增了泛型。泛型將型別引數的概念引入 net framework,這樣就可以設計具有以下特徵的類和方法 在客戶端 宣告並初始化這些類和方法之前,這些類和方法會延遲指定乙個或多個型別。泛型定義 泛型是為所儲存或使用的乙個或多個型別具有佔位符 型別形參...

C 2 0 匿名委託

delegate經常被人用來與 相比較,其實兩者在某種程度上由很多共同點。不過delegate有很多更加強大的地方。首先,delegate中可以註冊任意多個 在乙個delegate被呼叫的時候,已經註冊的過程將會被逐個呼叫。其次,delegate允許註冊乙個物件的方法,而不像c 中指可以使用靜態方法...

C 20模組介紹

visual studio 2019 v16.8終於支援了c 20模組,有了模組,我們就可以充分結合c 模板的強大特性與物件導向的封裝思想,寫出更易於維護的規模較大的軟體了。visual c 目前已經實現了c 20模組的幾乎所有內容,也初步加入了工程配置和智慧型提示支援,但截至發文16.8pre6版...