Heim > Backend-Entwicklung > C#.Net-Tutorial > Was ist Mustervergleich in C# 7.0?

Was ist Mustervergleich in C# 7.0?

WBOY
Freigeben: 2023-09-17 12:09:03
nach vorne
1531 Leute haben es durchsucht

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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

   }

}

Nach dem Login kopieren

Ausgabe

1

2

3

Area of Rect 402.59999999999997

Area of Rect 536.8

Area of Circle 452.44799423217773

Nach dem Login kopieren
Nach dem Login kopieren

nach dem Mustervergleich -

Beispiel

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

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

   }

}

Nach dem Login kopieren

Ausgabe

1

2

3

Area of Rect 402.59999999999997

Area of Rect 536.8

Area of Circle 452.44799423217773

Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage