C#의 패턴 매칭(pattern matching)
이 레슨에서는 패턴을 쓰는 switch 식으로 데이터의 타입과 값을 깔끔하고 안전하게 확인합니다.
소개
패턴 매칭(pattern matching)을 쓰면 하나의 식 안에서 값의 타입을 확인하고, 조건을 검사하고, 데이터를 꺼내 바로 쓸 수 있습니다. 타입을 확인한 다음 직접 변환하는, 길고 실수하기 쉬운 코드를 대신합니다.
Describe 함수의 switch 식은 패턴을 차례로 확인합니다. 데이터가 없으면 null, 양의 정수는 int number when number > 0, 비어 있지 않은 문자열은 string { Length: > 0 }, 그 밖의 경우는 _입니다. 값이 12이면 양의 정수 패턴에 해당하며 결과는 positive 12입니다.
동작 원리 보기
슬라이더로 요일을 바꿔 보세요. 프로그램은 일치하는 case로 바로 이동하고, 일치하는 것이 없으면 default로 갑니다.
실행 가능한 C# 예제
C#
Program.cs
using System;
class Program
{
static string Describe(object? value) => value switch
{
null => "missing",
int number when number > 0 => $"positive {number}",
string { Length: > 0 } text => $"text: {text}",
_ => "other"
};
static void Main() => Console.WriteLine(Describe(12));
}
positive 12디버거로 연습하기
중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.
챌린지로 연습하기
이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.
- Triangle Classification Classify three side lengths as invalid, equilateral, isosceles, or scalene. 쉬움
- 홀수, 짝수, 또는 해당 없음 숫자가 홀수 정수인지, 짝수 정수인지, 또는 둘 다 아닌지 분류하세요. 쉬움