Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Mustervergleich in C# 7.0?

Was ist Mustervergleich in C# 7.0?

WBOY
WBOYnach vorne
2023-09-17 12:09:031475Durchsuche

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 -

Beispiel
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 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();
   }
}

Ausgabe

Area of Rect 402.59999999999997
Area of Rect 536.8
Area of Circle 452.44799423217773

nach dem Mustervergleich -

Beispiel

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();
   }
}

Ausgabe

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:C#-NummernschubNächster Artikel:C#-Nummernschub