반응형
소개
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 확장 메서드로 이용한다면 더욱 간결하고 직관적으로 빠른 코딩이 가능할 것이다.
반응형
'Programming > C# & .NET' 카테고리의 다른 글
[C#] XMl 직렬화, 역직렬화 Method 공유 (2) | 2023.01.06 |
---|---|
[C#] XML 직렬화, 역직렬화 (Serialize, Deserialize) (0) | 2023.01.06 |
[C#] 확장메서드 (Extension Method) (1) | 2022.10.28 |
[C#] List 정렬 총정리(기본정렬, 여러개 정렬) (0) | 2022.10.18 |
[C#] JsonConvert null 해결방법 (1) | 2022.10.13 |
댓글