隨著下個版本的C#發布日逐漸臨近,那些還沒有完成的特性必須被砍掉。最近從特性列表中被砍掉的特性包括主要構造函數(primary constructor)和聲明表達式(declaration expression)。Mads Torgersen寫道:
正如我之前所說的一樣,語言特性在這次發布中只是第二等級的考慮。這次發布的主要目標是出色地完成Roslyn價值命題的首個發布,包括在IDE中對語言特性更深入的理解,以及讓所有人都可以通過一套健壯和完善的API進行訪問。為了更好地實現這次提交的內容,我們不得不對語言特性進行一些相應的縮減。
好在并不是只有壞消息,一個之前從未被微軟提到過的新特性即將隨C# 6發布,這就是字符串值插入(string interpolation),該特性允許開發者對字符串直接進行內聯,而無需顯式地調用String.Format方法。字符串值插入在2009年時曾作為一個實驗性特性加入到Mono編譯器中。
下個版本中將包含的特性包括以下內容:
- 自動屬性的初始化器(VB中已具有該特性)
- 只包括Get方法的自動屬性
- 在構造函數中為只包括Get方法的自動屬性傳值
- 無參數的結構體(struct)構造函數
- 直接訪問靜態成員(VB中已具有該特性)
- Dictionary的初始化器(僅限于C#)
- 在catch與finally中調用await(C#中已完成,VB尚未確定)
- 異常過濾器(VB中已具有該特性)
- Typecase(VB尚未確定)
- 部分(Partial)模塊(僅限于VB中,不適用于C#)
- 部分(Partial)接口(C#中已具有該特性)
- 多行字符串(C#中已具有該特性)
- 獲取某一年第一天日期的日期表達式(僅限于VB)
- 某行代碼延續的注釋(僅限于VB,不適用于C#)
- TypeOf和IsNot(僅限于VB,不適用于C#)
- 在成員定義中使用表達式(僅限于C#)
- Null值傳遞(C#中已完成,VB尚未確定)
- Params參數接受IEnumerable類型(尚未確定)
- 字符串值插入(已在計劃中)
- nameof操作符(C#中已完成,VB已在計劃中)
- #pragma指令(C#中已具有該特性)
- 在自動屬性中指定字段(尚未確定)
- 你可以在語言特性狀態頁面中看到尚未被砍掉的全部特性列表。
注意:InfoQ之前曾錯誤地報導了模式匹配會成會C# 6與VB 12的一部分,特此澄清。
掃碼二維碼 獲取免費視頻學習資料
- 本文固定鏈接: http://phpxs.com/post/1875/
- 轉載請注明:轉載必須在正文中標注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費視頻資料
查 看2022高級編程視頻教程免費獲取