C# 9.0 新特性之模式匹配簡化
阿新 • • 發佈:2020-06-15
閱讀本文大概需要 2 分鐘。
記得在 MS Build 2020 大會上,C# 語言開發專案經理 Mads Torgersen 宣稱 C# 9.0 將會隨著 .NET 5 在今年 11 月份正式釋出。目前 .NET 5 已經到了 Preview 5 階段了,C# 9.0 也已經初具規模。忍不住激動的心情,暫停更新《C#.NET 拾遺補漏》系列幾天,先要和大家分享一下我瞭解到的 C# 9.0 的新特性。由於新特性比較多,所以會分成幾篇來講。這是第一篇,專講模式匹配這個特性的簡化。 模式匹配(Pattern Matching)是在 C# 7.0 引入的,是對 switch 語句的增強,可以支援實現複雜的條件匹配。下面我先用一個示例來展示一下模式匹配的一般的用法。 假如現在我們要計算各種車輛在某高速的通行費,比如有下面四種車輛,分別定義為以下四個類,各個類中定義了和通行費計算相關的屬性: ```cs public class Car { public int Passengers { get; set; } } public class DeliveryTruck { public int GrossWeightClass { get; set; } } public class Taxi { public int Fares { get; set; } } public class Bus { public int Capacity { get; set; } public int Riders { get; set; } } ``` 下面用用模式匹配的方式來實現一個計算通行費的方法: ```cs public decimal CalculateToll(object vehicle) =>程式碼來源於文末參考連結