C# 7.0에서는 표현식과 스위치라는 두 가지 상황에서 패턴 일치를 도입합니다. 성명.
모드는 값이 특정 모양을 가지고 있는지 테스트하고 다음에서 얻을 수 있습니다. 모양이 일치할 때의 값입니다.
패턴 일치는 알고리즘에 대한 더 깔끔한 구문을 제공합니다.
모든 데이터 유형(자신의 데이터 유형 포함)에 대해 패턴 일치를 수행할 수 있습니다. 그렇지 않으면 항상 일치시킬 기본 요소가 필요합니다.
패턴 매칭은 표현식에서 값을 추출할 수 있습니다.
패턴 매칭 전 -
examplepublic 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
패턴 매칭 후 -
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
위 내용은 C# 7.0의 패턴 일치란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!