더북(TheBook)

12.4.1 상수 패턴

상수 패턴(constant pattern)은 이름 그대로다. 이 패턴은 컴파일 타임 상수 표현식으로 작성되며 input과의 동일성을 판단한다. 만약 input과 상수가 모두 정수 표현식이면 ==을 이용하여 비교한다. 그 외의 경우에는 object.Equals 메서드를 호출하여 비교를 수행한다. 이때 호출되는 Equals 메서드는 내부적으로 null 여부를 우선적으로 확인하는 정적 버전의 Equals 메서드다. 다음 예는 이 책의 다른 어떤 예제보다 실용성이 떨어지지만, 몇 가지 흥미로운 점을 보여준다.

예제 12-12 단순한 상수 매칭 ▶ ConstantPatterns.cs

static void Match(object input)
{
    if (input is "hello")
        Console.WriteLine("Input is string hello");
    else if (input is 5L)
        Console.WriteLine("Input is long 5");
    else if (input is 10)
        Console.WriteLine("Input is int 10");
    else
        Console.WriteLine("Input didn't match hello, long 5 or int 10");
}
static void Main()
{
    Match("hello");
    Match(5L);
    Match(7);
    Match(10);
    Match(10L);
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.