.net 發展至今,隨著.net core 3.1 的發佈,武器庫是越來越兇狠,新的語法支援可以更快速產出,編譯器也會
幫我們編出高效率的中繼碼,但實務還上還是有人不知道,這邊列出自己實務上很常使用的語法並且搭配應用情境,
另外,C# 6.0 其實在 VS2015 就已經支援了。
以下陸續列出日常實際使用的項目
字串插值(string format)
已往我們都是透過string.Format 來組合字串與變數,現在可以直接在字串表達式前面使用「$」關鍵字來達到組合的效果。
也可以搭配verbatim string literal 一起使用,關鍵字「@」
透過這個方法可以讓程式碼短一點,即視感也提升
Null 條件運算子
實務上,有時會需要判斷某個物件的屬性或方法參數的值,才決定下一步的動作,但若物件或參數本人是null 而
直接取值也會發生錯誤,所以往往會多判斷,如下所示
使用了 null 條件運算子,僅需要在變數後方加上「?」後續接著原本的寫法即可,如下所示
原理上是這樣的,若雙 ?? 左邊為 null 值,則回傳右邊的值;其中,在 linq 或迴圈迭代中滿常用的。
唯讀 Auto 屬性與初始設定式
之前設定唯讀屬性需要搭配 private set 一起使用,現僅需要 get 即可,如下所示
以上兩者編譯都會過
至於初始設定式,就是唯讀的屬性,可以透過建構式傳入設定值或是宣告值直接給值,如下
其中,若屬性是物件類別,也是可以使用直接設定,僅 = 後方改成 new 關鍵字宣告即可。
初始設定式,不用像以往需要實作 prop full 完整的設計才有初始值,簡化了許多步驟。
具有運算式主體的函式成員
有時候我們設計方法僅有單一陳述式,而這些陳述式可能是單一運算式,這時候我們不用宣告完整的 { },可用類似 lambda 撰寫方式完成實作,如下
以上可看出,該技巧適用 「屬性」與「方法」
nameof 表示式
有時候方法會有基本的防呆,如判斷參數是否為null 並丟出例外,如下
這做法很棒,但若參數名稱改了(重構),又要手動調整已設定字串名稱,有點麻煩,故6.0 提供了 nameof 關鍵字來幫我們節省力氣
其他還有其他不錯的feature,列出參考
沒有留言:
張貼留言