三年前趁著讀 C# In Depth 看完 C# 7,進入 .NET Core 時代後 C# 改為年年推出新版,C# 8.0 在 2019 年推出,不知不覺已經已到 C# 13 惹,而 C# 14 也已在轉角,即將在年底發佈。

所以,這是篇晚了六年的開箱文(嚴格來說是考古文),但既然靠 C# 吃飯,就像缺了必修學分,該補修就得補修,這陣子一路從 C# 8 補到 C# 13,回顧各版本新增加的特性與功能。時代不同了,如今有 AI 伴讀,一些深澀少用的功能 LLM 也能解釋得明明白白,學習程式語言邁入了新紀元。(雖然很多人心中所謂新紀元是以後再也不用學程式語言,噗)

月初開始陸續把 C# 8 到 C# 13 的新功能盤點一輪,這篇把所有連結整理成清單,方便想學我補進度的同學一次看。

  • C# 8
    亮點:Nullable Reference Type (例如:string?、object?)、switch ... case 新增花式玩法、using 免打大括號不用縮排、範圍運算子(number[1..^2])、介面比照抽象類別可加入方法實作、struct 成員(屬性/索引子)支援唯讀宣告...
  • C# 9
    亮點:最上層陳述式(Program.cs 不用 using、namespace、class 不用 Main())、用來封裝不可變資料(Immutable Data)的新型別 Record、更多 switch ... case 花式玩法、省略型別名稱的 new() 寫法、用下劃線 _ 作為捨棄參數...
  • C# 10
    亮點:Record 型別除 struct 外支援 class 底層實作、檔案開頭 namespace 免打大括號不用縮排、Lambda 本身或其參數可套用 Attribute...
  • C# 11
    亮點:Raw String Literal 原始字串常值(仿 Python """....""" 包多行文字)、UTF-8 字串常值(在記憶體以 UTF8 編碼儲存減少 IO 傳輸時的轉換)、file 修飾字限定類別僅同一原始檔可見、switch ... case 陣列清單比對花式玩法...
  • C# 12
    亮點:Lambda 參數可省略並支援預設值、中括號集合表示式 int[] arr = [4, 5, 6];、Primary Constructors (直接在 struct 或 class 宣告帶入參數初始化屬性及欄位)...
  • C# 13
    亮點:System.Threading.Lock 類別取代 lock(someObject) 語意更清楚、中括號集合表示式對映 params 參數、partial 型別允許部分屬性與索引子...

Catalog of key features overview from C# 8 to C# 13


Comments

# by 小黑

讚嘆黑哥

Post a comment