c#
c# 패턴매칭... switch case에 활용..
by kcj3054
2022. 12. 6.
예1.
List<int> objList = new();
foreach (object item in objList)
{
switch (item)
{
case 100:
break;
case null:
break;
case DateTime dt: // 타입패턴, 필요없다면 dt 변수명을 _로 생략 가능d
break;
case ArrayList arr:
break;
case var elem:
break;
}
}
- case쪽을 보면서.. var패턴, 타입패턴, 상수 패턴이 있다...
- switch case에 패턴들을 적용하면서 모든 if문은 switch case문으로 또한 그 반대도 가능하게되었다
예2.
//변경 전...
int j = GetIntegerResult();
if (j > 300)
{
}
else
{
}
//변경 후...
switch (j)
{
case int i when i > 300:
break;
default:
break;
}
예 3.
string text = "asdfasdfasdfadsF";
switch (text)
{
case var item when (ContainsAt(item, "http://www.naver.com")):
Console.WriteLine("IN Naver...");
break;
case var item when (ContainsAt(item, "http://www.daum.net")):
Console.WriteLine("IN Daum.... ");
break;
}
bool ContainsAt(string item, string url)
{
//내용은 생략
return false;
}
- 현재 switch case쪽에서 case문에서 when을 사용할 수 있기에 var 패턴에 더욱 효과적이다..