더북(TheBook)

이 코드에서 switch 문은 이전 버전의 C#에서 사용하던 switch와는 차이가 있다. 이전 버전의 C#에서는 switch 문의 레이블에 반드시 상숫값을 사용해야 했다. 하지만 이 코드에서의 switch 문은 때로는 값이 일치하는지 확인하기도 하고(null인 경우), 값의 타입이 일치하는지 확인하기도 한다(Rectangle, Circle, Triangle의 경우). 값의 타입이 일치하면 해당 타입으로 새로운 변수를 생성하여 둘레의 길이를 계산할 때 사용한다.

C#에서의 패턴 매칭은 크게 두 부분으로 나눠 살펴볼 수 있다.

패턴 문법

패턴을 사용할 수 있는 문맥

처음에는 모든 것이 새로워 보이고, 이 둘을 구분하는 것이 무의미해 보일 수도 있다. 하지만 C# 7.0에서 사용할 수 있는 패턴은 그저 시작에 불과하다. 실제로 C# 설계 팀은 향후에 새로운 패턴을 추가할 수 있도록 문법 구조를 설계했다고 밝힌 바 있다. 패턴을 어디에서 사용하는지 정확히 알면 새로운 패턴을 좀 더 쉽게 사용할 수 있을 것이다. 어떤 패턴을 사용할 수 있으며 어떤 문맥에서 사용할 수 있는지 보여주는 것은 ‘닭과 달걀’ 이야기와 같아서 무엇을 먼저 이야기할지 다소 모호하지만, 여기서는 C# 7.0에서 사용할 수 있는 패턴의 종류를 먼저 알아보기로 하겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.