阅读量:0
在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#中实现模式匹配变得更加简单和直观。