在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#中實現模式匹配變得更加簡單和直觀。