(C#) 패턴 매칭

C# 9.0부터 스위치 표현식에 부등식 기호를 사용할 수 있으며 and, or, not과 같은 논리 연산이 허용되지 않습니다.

먼저 부등호를 사용한 예입니다. _(밑줄)은 기본값을 의미합니다.

static char GetResult(int score)
{
    char result = score switch
    {
        >= 90 => 'A',
        >= 80 => 'B',
        >= 70 => 'C',
        >= 60 => 'D',
        _ => 'F'
    };

    return result;
}

이것은 Nolly 작업의 예입니다.

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 (40은 100일때만 나온다)

보지마.

또한 이전에는 타입을 비교할 때만 이었지만 이제는 아래와 같이 사용할 수 있습니다.

if (value is not TestClass)
{

}