C#
[C#] 패턴 매칭
kjun.kr
2023. 3. 28. 23:21
728x90
C# 9.0부터 Switch 식에 부등호를 쓸 수 있도록 되었고 and, or, not과 같은 논리 연산이 가능해졌습니다.
먼저 부등호의 사용예시입니다. _ (언더바)는 Default를 의미합니다.
static char GetResult(int score)
{
char result = score switch
{
>= 90 => 'A',
>= 80 => 'B',
>= 70 => 'C',
>= 60 => 'D',
_ => 'F'
};
return result;
}
논리 연산의 예시입니다.
static int GetResult(int grade)
{
int result = grade switch
{
0 or 1 => 10,
> 1 and < 10 => 20,
not 100 => 30,
_ => 40
};
return result;
}
위 구문을 해석해 보면
0,1 인 경우 10
1 에서 10 사이에 있는 경우 20
100 이 아닌 경우 30
마지막 _ 은 모든 조건이 아닌경우 40 (100인 경우만 40이 나옴)
입니다.
또한 이전에 타입 비교 시 is 만 있었지만 is not 쓸 수 있게 되어 아래처럼 사용 가능합니다.
if (value is not TestClass)
{
}
728x90