2020年9月27日 星期日

C# 7.3 泛型條件約束增強

又往前推進了一個版本,這次來到 C# 7.3 ,而這小改版有一個地方讓我非常有感,

那就是「泛型的條件約束」,所以來特別來介紹,以前在設計泛型的時候,很常使用到「列舉」

,但就是無法直接使用關鍵字 Enum,需要轉念一下,原來是要使用 struct 關鍵字...


先來看原本的 7.3 版本之前,會怎麼設計列舉的條件約束,下面實作將列舉轉 Dictionary 的函式


其中 TEnum 需要使用 struct 關鍵字,若換成 System.Enum 就會出現錯誤,如下圖



環境來到 C# 7.3 就可以直接使用 Enum 關鍵字了,同樣的程式碼直覺感提升,如下圖





另外,值得一提的是,為何不能直接使用列舉別名 enum ,若直接使用會出現錯誤,如下圖,

網路上找了一些資料,提供參考:12




同樣的,條件約束也支援委派 Delegate (同樣要大寫),詳情可以參考



相關參考

沒有留言:

張貼留言