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);
}