C# 7.0의 패턴 일치란 무엇입니까?

WBOY
풀어 주다: 2023-09-17 12:09:03
앞으로
1485명이 탐색했습니다.

C# 7.0 中的模式匹配是什么?

C# 7.0에서는 표현식과 스위치라는 두 가지 상황에서 패턴 일치를 도입합니다. 성명.

모드는 값이 특정 모양을 가지고 있는지 테스트하고 다음에서 얻을 수 있습니다. 모양이 일치할 때의 값입니다.

패턴 일치는 알고리즘에 대한 더 깔끔한 구문을 제공합니다.

모든 데이터 유형(자신의 데이터 유형 포함)에 대해 패턴 일치를 수행할 수 있습니다. 그렇지 않으면 항상 일치시킬 기본 요소가 필요합니다.

패턴 매칭은 표현식에서 값을 추출할 수 있습니다.

패턴 매칭 전 -

example
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();
   }
}
로그인 후 복사

output

Area of Rect 402.59999999999997
Area of Rect 536.8
Area of Circle 452.44799423217773
로그인 후 복사
로그인 후 복사

패턴 매칭 후 -

example

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();
   }
}
로그인 후 복사

output

Area of Rect 402.59999999999997
Area of Rect 536.8
Area of Circle 452.44799423217773
로그인 후 복사
로그인 후 복사

위 내용은 C# 7.0의 패턴 일치란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿