(33)C#模式匹配 ( pattern matching )

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(33)C#模式匹配 ( pattern matching )相关的知识,希望对你有一定的参考价值。

在 C# 中,is 是一个关键字,可以用来检查某个数据的类型是否为特定类型。这是一个表达式,返回类型为 boolean。
在 C# 7.0 中,is 在原来的基础上,额外提供了类型转换的支持。可以在类型检查的基础上,直接支持类型转换。

        static void UseIsOperator(Animal a)
        
            if (a is Mammal)
            
                Mammal m = (Mammal)a;
                m.Eat();
            
        

        static void UsePatternMatchingIs(Animal a)
        
            if (a is Mammal m)
            
                m.Eat();
            
        

这里前面没有使用模式匹配,后面使用了,这两个代码是等价的。

为了了解这些语言的特性,可以使用下面的例子来深入体会它:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp21

    class Animal
    
        public void Eat()  Console.WriteLine("吃饭."); 
        public override string ToString()
        
            return 

以上是关于(33)C#模式匹配 ( pattern matching )的主要内容,如果未能解决你的问题,请参考以下文章

C# 7.0 新特性3: 模式匹配

Java对模式中“(?<name>pattern)”的支持[重复]

csv 文件中的模式匹配并附加到匹配的行

函数式编程之-模式匹配(Pattern matching)

Scala之模式匹配(Patterns Matching)

【Scala】模式匹配和样本类