[C#] 패턴 매칭

C# 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

'C#' 카테고리의 다른 글

[C#] C# 11 - file access modifier  (0) 2023.04.01
[C#] C# 11 - 복수 라인 처리  (0) 2023.03.30
[C#] Record 란  (0) 2023.03.28
[C#/NATS] Docker NATS 서비스 이용해 Pub/Sub 하기  (0) 2023.03.28
bin obj 폴더 일괄 삭제하기  (0) 2023.02.19
Posted by kjun.kr
,