본문 바로가기
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 패턴에 더욱 효과적이다..

'c#' 카테고리의 다른 글

semaphore..  (1) 2022.12.06
c# 7.0...8.0  (0) 2022.12.06
Generic, where, using static  (0) 2022.12.06
Task vs TaskValue  (0) 2022.12.06
c# (시작하세요 c# 프로그래밍 도서 )  (0) 2022.12.05