C# 6和 VB 12的最新特性列表

infoq發表於2014-11-05

  隨著下個版本的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的一部分,特此澄清。

  英文原文:Updated Feature List for C# 6 and VB 12

相關文章