🌍 C# Study/C# 케이스 스터디
C# switch 내부 when 절
맨텀
2021. 11. 2. 19:50
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",
};