본문 바로가기
Programming/C# & .NET

[C#] switch 식

by Kor-IT 2022. 12. 2.
반응형

C# switch 식

 

 

소개


switch 식은 C# 버전 8.0에서 나온 기능이다. 보통 switch case 문 조건으로 처리를 하는데 switch 식을 이용함으로써 좀 더 간결하고 명시적으로 사용 가능해졌다. 개인적으로 switch 식을 알고 있기 전과 이후로 많은 코딩 변화가 일어났다.

 

 

 

사용방법


switch case 문

public string GetColorName(int colorNum)
{
    string colorName = string.Empty;

    switch(colorNum)
    {
        case 0: colorName = "red"; break;
        case 1: colorName = "blue"; break;
        case 2: colorName = "green"; break;
        case 3: colorName = "yellow"; break;
        default: colorName = "black"; break;
    };

    return colorName;
}

switch case 문으로 사용시 대부분 저런 형식으로 사용할 것이다. 각 case에 맞추어 리턴해주는 방식이다.

 

 

switch 식

public string GetColorName(int colorNum)
{
    return colorNum switch
    {
        0 => "red",
        1 => "blue",
        2 => "green",
        3 => "yellow",
        _ => "red",
    };
}

switch case문과 비교해보면 훨씬 더 직관적이고 보기 쉬워진다. 리턴해주는 변수를 만들 필요도 없으며 더욱 직관적으로 코딩이 되기 때문에 보는 입장에서 더욱 편하고 코딩하기가 더 간결해진다.

어떤 사람은 switch case 문에서 break; 대신 return; 하면 되는거 아니냐고 하는데 그렇게 하면 리턴 변수를 사용할 필요가 없어지는 건 맞지만 가독성이나 다른 걸 고려했을 경우 switch 식이 훨씬 더 좋다고 생각한다.

 

 

switch case 패턴 (when)

public string GetType(int value)
{
    switch (value)
    {
        case int _ when value < 10: return "low";
        case int _ when value >= 10 && value <= 50: return "medium";
        default: return "high";
    }
}

switch case (when) 을 사용하여 return으로 바로 결과가 나오도록 했다.

 

 

switch 식 + when

public string GetType(int value)
{
    // 방법1
    return value switch
    {
        < 10 => "low",
        >= 10 and <= 50 => "medium",
        _ => "high"
    };

    // 방법2
    //return value switch
    //{
    //    _ when value > 10 => "low",
    //    int _ when value >= 10 && value <= 50 => "medium",
    //    _ => "high"
    //};
}

switch case (when) 보다 훨씬 더 간결해지며 직관적으로 되었다.

 

같은 swtich 구문이라면 나라면 switch 식을 이용할 것이다. switch 식은 특히 enum 확장 메서드로 이용한다면 더욱 간결하고 직관적으로 빠른 코딩이 가능할 것이다.

 

 

 

 

 

switch 식 - C# 참조

패턴 일치를 기반으로 스위치와 유사한 의미 체계를 제공하는 C# 스위치 식에 대해 알아봅니다.

learn.microsoft.com

 

 

Switch Case When In C# Statement And Expression

In this post we are going to take a look at a relatively new feature - when keyword in the context of switch statement and switch expression.

ochzhen.com

 

반응형

댓글