Heim > Artikel > Backend-Entwicklung > Was ist Mustervergleich in C# 7.0?
C# 7.0 führt den Mustervergleich in zwei Situationen ein: Ausdruck und Wechsel Stellungnahme. Der
-Modus testet, ob ein Wert eine bestimmte Form hat und daraus ermittelt werden kann Der Wert bei passender Form.
Der Mustervergleich bietet eine sauberere Syntax für Algorithmen.
Sie können den Mustervergleich für jeden Datentyp (sogar Ihren eigenen Datentyp) durchführen Wenn/sonst, benötigen Sie immer passende Grundelemente.
Der Mustervergleich kann Werte aus Ausdrücken extrahieren.
Vor dem Mustervergleich -
Beispielpublic class PI{ public const float Pi = 3.142f; } public class Rectangle : PI{ public double Width { get; set; } public double height { get; set; } } public class Circle : PI{ public double Radius { get; set; } } class Program{ public static void PrintArea(PI pi){ if (pi is Rectangle){ Rectangle rectangle = pi as Rectangle; System.Console.WriteLine("Area of Rect {0}", rectangle.Width * rectangle.height); } else if (pi is Circle){ Circle c = pi as Circle; System.Console.WriteLine("Area of Circle {0}", Circle.Pi * c.Radius * c.Radius); } } public static void Main(){ Rectangle r1 = new Rectangle { Width = 12.2, height = 33 }; Rectangle r2 = new Rectangle { Width = 12.2, height = 44 }; Circle c1 = new Circle { Radius = 12 }; PrintArea(r1); PrintArea(r2); PrintArea(c1); Console.ReadLine(); } }
Area of Rect 402.59999999999997 Area of Rect 536.8 Area of Circle 452.44799423217773
nach dem Mustervergleich -
public class PI{ public const float Pi = 3.142f; } public class Rectangle : PI{ public double Width { get; set; } public double height { get; set; } } public class Circle : PI{ public double Radius { get; set; } } class Program{ public static void PrintArea(PI pi){ if (pi is Rectangle rectangle){ System.Console.WriteLine("Area of Rect {0}", rectangle.Width * rectangle.height); } else if (pi is Circle c){ System.Console.WriteLine("Area of Circle {0}", Circle.Pi * c.Radius * c.Radius); } } public static void Main(){ Rectangle r1 = new Rectangle { Width = 12.2, height = 33 }; Rectangle r2 = new Rectangle { Width = 12.2, height = 44 }; Circle c1 = new Circle { Radius = 12 }; PrintArea(r1); PrintArea(r2); PrintArea(c1); Console.ReadLine(); } }
Area of Rect 402.59999999999997 Area of Rect 536.8 Area of Circle 452.44799423217773
Das obige ist der detaillierte Inhalt vonWas ist Mustervergleich in C# 7.0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!