C#8.0模式匹配
链接:https://docs.microsoft.com/zh-cn/dotnet/csharp/tutorials/pattern-matching
运行环境:.NET Core3.1
模式匹配是官方的新版switch
改变:
1.使用时变量后面加switch关键字
2.省略case关键字,同时结果变成表达式
3.可以传入为空的参数,也就是说可以匹配为空的参数,同时可以检测出何时传入了为空的参数
4.传入非匹配类型时优先执行{ }=>这个方法
5.支持多个参数匹配
官方案例:
public decimal PeakTimePremium(DateTime timeOfToll, bool inbound) => (IsWeekDay(timeOfToll), GetTimeBand(timeOfToll), inbound) switch { (true, TimeBand.MorningRush, true) => 2.00m, (true, TimeBand.MorningRush, false) => 1.00m, (true, TimeBand.Daytime, _) => 1.50m, (true, TimeBand.EveningRush, true) => 1.00m, (true, TimeBand.EveningRush, false) => 2.00m, (true, TimeBand.Overnight, _) => 0.75m, (false, _, _) => 1.00m, };

浙公网安备 33010602011771号