swich....case 條件分支多了之后,會嚴重的破壞程序的美觀性。 比如這個 上述代碼是用於兩個進程之間通信的代碼,由於通信的枚舉特別的多,所以case的分支特別的多。導致了代碼的可讀性,可維護性嚴重下降。經過查找資料和重構,想到了一種可行的在這種情況替代switch...case的方案 ...
今天在重構代碼時對下面的一堆if語句實在看着不順眼。 突然想到 C . 的新特性 Pattern Matching in C . Case Blocks,眼前一亮。於是試試看能否消滅這一堆if,結果如願以償,又一次實際體會到 C . 的魅力。 ...
2017-05-04 14:03 0 3996 推薦指數:
swich....case 條件分支多了之后,會嚴重的破壞程序的美觀性。 比如這個 上述代碼是用於兩個進程之間通信的代碼,由於通信的枚舉特別的多,所以case的分支特別的多。導致了代碼的可讀性,可維護性嚴重下降。經過查找資料和重構,想到了一種可行的在這種情況替代switch...case的方案 ...
結果 另外還可以 匹配 var 或者null 具體用法可以查看微軟文檔 模式匹配 - C# 指南 ...
C# 7.0的模式匹配(Pattern Mathing)不僅可以節省代碼,而且可以讓代碼更流暢(Fluent),今天又在實際開發中體會了一下。 不用模式匹配的代碼,需要先獲取返回值,然后用if進行判斷。 使用模式匹配的代碼,在if中獲取返回值並進行判斷,一氣呵成。 ...
本文參考Roslyn項目Issue:#206,及Docs:#patterns。 1. C# 7.0 新特性1: 基於Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 4. C# 7.0 新特性4: 返回引用 ...
C# 7.0 新特性:模式匹配 ( pattern matching ) 在 C# 中,is 是一個關鍵字,可以用來檢查某個數據的類型是否為特定類型。這是一個表達式,返回類型為 boolean。 例如,我們可以檢查某個實例是否為 Persion 類型 在下面情況下,返回 ...
有時候編程編的久了,如果不停下來認真思考一下,即便是一些最基礎的知識點,也可能讓自己懵圈。其實,說到底還是打基礎的時候沒打牢,或者說自以為是地認為自己懂了,然后在打基礎的時候就懶得思考懶得看了,結 ...
C# 7 里面的Pattern Mathing 更多內容請查看官方文檔:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-8#more-patterns-in-more-places?WT.mc_id ...
switch是一個控制語句,用於選擇一個要執行的語句塊。 一個switch語句包括一個或多個執行的語句塊。每個語句塊包括一個或多個case標簽,case后接要執行的語句。 如下面的代碼 注: 每個 case 標簽指定一個常數值。switch 語句會將控制傳輸 ...