Build 2018大會 C 的未來

2021-09-17 05:05:50 字數 971 閱讀 3503

\

\

\\

在c#的未來特性清單上,排在第一位的是可空引用型別。我們第一次報道這個特性是在去年,這裡我們簡要的回顧一下:所有的引用變數、引數和字段預設都是非空的。然後,和值型別一樣,如果你希望它們可以為空,你就必須在型別名上加乙個問號(?)來顯式說明。

\\ 這會是一項可選特性,目前的想法是,對於將公升級到c# 8的現有專案,可空引用型別特性是關閉的。對於新專案,微軟傾向於預設開啟這項特性。

\\ 警告會進一步分成潛在錯誤和表面警告。例如,如果p.middlename是乙個string?,那麼下面這行**會是乙個表面警告:

\\

string middlename = p.middlename;\
\\

由於危險只會出現在值解引用的時候,所以這種對區域性變數的賦值並不是乙個真正的問題。因此,你可以在遺留**上禁用這個警告,以減少誤報數量。

\\ 同樣,早於這項特性的庫也不會觸發警告,因為編譯器不知道乙個指定的引數是否應該視為可空的。

\\ github上提供了可空引用型別的預覽。

\\switch表示式

\\ switch塊通常用於簡單地返回單個值。在這個常見的場景中,其語法比實際完成的工作要複雜得多。考慮下下面這個使用模式匹配的例子:

\\

static string m(person person)\\";\            case studen s:\                return $\"  ()\";\        default:\            return $\" \";\    }\}\
\\

在新的提案中,反覆出現的case和return語句可以省掉,其結果是下面這種更新、更緊湊的語法:

\\

static string m(person person)\\

Build 2018大會 C 的未來

在c 的未來特性清單上,排在第一位的是可空引用型別。我們第一次報道這個特性是在去年,這裡我們簡要的回顧一下 所有的引用變數 引數和字段預設都是非空的。然後,和值型別一樣,如果你希望它們可以為空,你就必須在型別名上加乙個問號 來顯式說明。這會是一項可選特性,目前的想法是,對於將公升級到c 8的現有專案...

Build 2018大會 C 的未來

在c 的未來特性清單上,排在第一位的是可空引用型別。我們第一次報道這個特性是在去年,這裡我們簡要的回顧一下 所有的引用變數 引數和字段預設都是非空的。然後,和值型別一樣,如果你希望它們可以為空,你就必須在型別名上加乙個問號 來顯式說明。這會是一項可選特性,目前的想法是,對於將公升級到c 8的現有專案...

Build 2018大會 C 的未來

在c 的未來特性清單上,排在第一位的是可空引用型別。我們第一次報道這個特性是在去年,這裡我們簡要的回顧一下 所有的引用變數 引數和字段預設都是非空的。然後,和值型別一樣,如果你希望它們可以為空,你就必須在型別名上加乙個問號 來顯式說明。這會是一項可選特性,目前的想法是,對於將公升級到c 8的現有專案...