c#

C#中怎么实现模式匹配

小亿
92
2024-04-25 18:25:48
栏目: 编程语言

在C#中,可以使用switch语句和模式匹配表达式来实现模式匹配。模式匹配表达式在C# 7.0及更高版本中引入,可以让开发者更方便地进行复杂的条件判断。

以下是一个简单的例子,展示了如何使用switch语句和模式匹配表达式来实现模式匹配:

public static void Main()
{
    object obj = new Circle(5);

    switch (obj)
    {
        case Square s:
            Console.WriteLine($"Square with side length {s.SideLength}");
            break;
        case Circle c:
            Console.WriteLine($"Circle with radius {c.Radius}");
            break;
        default:
            Console.WriteLine("Unknown shape");
            break;
    }
}

public class Square
{
    public int SideLength { get; }

    public Square(int sideLength)
    {
        SideLength = sideLength;
    }
}

public class Circle
{
    public int Radius { get; }

    public Circle(int radius)
    {
        Radius = radius;
    }
}

在上面的代码中,我们首先定义了一个基类Shape,然后定义了Square和Circle两个子类。在Main方法中,我们创建了一个object类型的变量obj,并将其赋值为一个Circle对象。接着使用switch语句对obj进行模式匹配,根据obj的实际类型执行不同的逻辑。

需要注意的是,模式匹配表达式在C#中还可以使用when子句来进一步过滤条件,以更精确地匹配目标类型。模式匹配表达式的灵活性和强大性使得在C#中实现模式匹配变得更加简单和直观。

0
看了该问题的人还看了