Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 8.0의 새로운 Switch 표현식(Switch Expression) 작성 방법

C# 8.0에서 도입된 switch 표현식(switch expression)은 표현식 컨텍스트에서 switch와 유사한 의미 체계를 제공하는 새로운 문법입니다.

기존의 switch 문은 선택문(selection statement)의 일종으로, 매칭 표현식(match expression)과 패턴 매칭 결과를 기준으로 후보 목록 중 단일 switch 섹션을 선택하여 실행합니다.

하나의 표현식을 세 개 이상의 조건과 비교해야 하는 경우에는 switch 문이 if-else 구문을 대체하는 용도로 자주 사용됩니다.

새로운 방식의 Switch 작성법

switch 표현식은 화살표(=>) 연산자를 사용하여 각 패턴에 대한 결과값을 직접 반환하기 때문에, 기존 switch 문처럼 case, break, return을 반복해서 작성할 필요가 없습니다. 이 덕분에 코드가 훨씬 간결하고 가독성이 높아집니다.

var message = c switch{
    Fruits.Red => "The Fruits is red",
    Fruits.Green => "The Fruits is green",
    Fruits.Blue => "The Fruits is blue"
};

예제 1

아래 예제는 기존의 switch 문과 새로운 switch 표현식을 나란히 비교하여 보여줍니다. 두 방식 모두 동일한 결과를 출력하지만, switch 표현식 쪽이 훨씬 적은 코드로 같은 동작을 구현합니다.

class Program{
    public enum Fruits { Red, Green, Blue }
    public static void Main(){
        Fruits c = (Fruits)(new Random()).Next(0, 3);
        switch (c){
            case Fruits.Red:
                Console.WriteLine("The Fruits is red");
                break;
            case Fruits.Green:
                Console.WriteLine("The Fruits is green");
                break;
            case Fruits.Blue:
                Console.WriteLine("The Fruits is blue");
                break;
            default:
                Console.WriteLine("The Fruits is unknown.");
                break;
        }
        var message = c switch{
            Fruits.Red => "The Fruits is red",
            Fruits.Green => "The Fruits is green",
            Fruits.Blue => "The Fruits is blue"
        };
        System.Console.WriteLine(message);
        Console.ReadLine();
    }
}

출력 결과

The Fruits is green
The Fruits is green