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 语句会将控制传输 ...