2
현재 C# 7 (버전 15.3.4)의 코드는 컴파일하는 데 유효하지만 두 변수는 모두 합법적으로 사용할 수 없습니다.패턴 매칭에서 fall through
switch(fruit)
{
case Apple apple:
case Orange orange:
// impossible to use apple or orange
break;
case Banana banana:
break;
}
사용하려고하면 익숙한 오류가 발생합니다. 액세스하기 전에 변수가 초기화되지 않았을 수 있습니다.
패턴 매칭에서 어떤 유형은 원하는 유형에 속하는 한 정확한 유형은 상관하지 않습니다. 예를 들어 사과와 오렌지 만 있습니다.
List<Fruit> applesAndOranges = new List<Fruit>();
switch(fruit)
{
case Fruit X when X is Apple || X is Orange:
applesAndOranges.Add(X);
break;
case Banana banana:
break;
}
더 좋은 방법이 있습니까?