C# switch 내부 when 절

 

C# 7.0과 8.0 에서 switch의 활용성이 꽤 높아졌는데,

대부분은 기본 siwtch 로도 충분하지만 추가된 기능들을 이용하면 좀 더 간결하고 명시적으로 사용할 수 있다.

 

 

1. 기본 방법

string DebugGetColor2(int n)
{
    int k = n % 4;
    switch (k)
    {
        case 0: return "red";
        case 1: return "yellow";
        case 2: return "blue";
        case 3: return "green";
        default: return "white";
    };
}

 

2. C# 8.0 의 switch식

string DebugGetColor2(int n)
{
    int k = n % 4;
    return k switch
    {
        0 => "red",
        1 => "yellow",
        2 => "blue",
        3 => "green",
        _ => "white",
    };
}

 

3. C# 7.0의 패턴 일치 (when 절) 

string DebugGetColor(int k)
{
    switch(k)
    {
        case int _ when k % 4 == 0: return "red";
        case int _ when k % 4 == 1: return "yellow";
        case int _ when k % 4 == 2: return "blue";
        case int _ when k % 4 == 3: return "green";
        default:                    return "white";
    }
};

 

4. switch 식 + when 절

string DebugGetColor2(int k) => k switch
{
    int _ when k % 4 == 0 => "red",
    int _ when k % 4 == 1 => "yellow",
    int _ when k % 4 == 2 => "blue",
    int _ when k % 4 == 3 => "green",
    _ => "white",
};

 

 

 

댓글

Designed by JB FACTORY