반응형
switch는 용어와 맞게 중복되지 않는 조건, 즉 유일 조건을 비교하는 용도로 사용한다.
그런데 만약 문자열의 특정 조건으로 switch를 사용하고 싶다면 어떨까?
C#7.0(.NET core 3.1) 에서는 문자열 검색 조건을 switch에서 사용할 수 있다.
방법은 when 키워드를 이용해서 조건의 추가가 가능하다.
사용 방법은 다음과 같다.
string mesg = "allmnettest";
switch(mesg)
{
case string b when b.StartsWith("test"):
Console.WriteLine("case2");
break;
case string a when a.StartsWith("test"):
Console.WriteLine("case1");
break;
default:
break;
}
만약 기존 switch라면 동일한 일치 조건은 사용할 수 없다. 하지만 위와 같은 코드로 구성이 된다면, 먼저 일치하는 코드에서 처리되고 이후 코드는 무시하는 구조이다. if에 else if 같은 구조라 할 수 있다.
if(mesg.Contains("test"))
{
}
else if(mesg.Contains("test"))
{
}
switch문의 특징인 유일한 일치 조건이 없어지는 부분이 아쉽기는 하지만, 보다 유연하게 코드를 구현할 수 있는 장점이 있는 것 환호 할 만하다. 필자 역시 이 기능을 찾게 된 이유가 일치 조건으로 switch문을 사용하기에 제약이 있어서 string 비교 문이 필요하던 차에 본 기능을 통해 쉽게 코딩을 마무리 할 수 있었다.
아래 글을 읽으면 이해에 보다 도움이 될 것이다.
패턴 일치 - C# 가이드 | Microsoft Docs
반응형
'.Net' 카테고리의 다른 글
.Net - Easy to make log file Console App (0) | 2020.12.19 |
---|---|
.NET - Download file from HttpClient/WebClient (0) | 2020.12.15 |
.NET - Error unprotecting the session cookie. (0) | 2020.12.09 |
.NET5 - 새로운 기능 Record (0) | 2020.12.03 |
.NET - HOW to use Parallel For, ForEach (0) | 2020.12.02 |