부트캠프

C# switch 패턴매칭

noyyo 2023. 9. 21. 13:01

C#에서는 is식 switch문 switch식에서 패턴매칭을 지원한다.

패턴이 무엇인고 어떤 것이 있는지는 아래 공식 문서를 참조하자.

https://learn.microsoft.com/ko-kr/dotnet/csharp/language-reference/operators/patterns

 

패턴 - is 및 switch 식을 사용한 패턴 일치입니다. - C#

'is' 및 'switch' 식에서 지원하는 패턴에 대해 알아봅니다. 'and', 'or' 및 'not' 연산자를 사용하여 여러 패턴을 결합합니다.

learn.microsoft.com

 

자주 써오던 방식의 switch는 switch문으로

switch (variable)
{
	case 0:
    	break;
    case 1:
    	break;
    default:
    	break;
}

이런 식으로 사용했다. 이렇게 작성하면 케이스가 많아질수록 코드가 길어져서 읽기도 힘들어지고 가독성도 나빠진다.

이럴 때 switch식을 사용할 수 있다.

public enum AttackType
{
    Melee,
    Range,
}

private void Attack(AttackType type)
{
    float Damage =  type switch
    {
        AttackType.Melee => 5,
        AttackType.Range => 10,
    } ;
}

switch 식은 위와 같이 switch로 판단할 변수를 앞에 두고 사용하면 된다.

주의할 점은 식이기 때문에 평소에 switch 문 사용하듯이 사용하면 안된다. 어떤 문을 수행하는 것이 아니라 식을 수행하도록 해야한다.

 

이 스위치 식에서도 패턴 매칭을 사용해서 여러가지 식을 쓸 수 있으며 대표적으로 무시패턴이 많이 쓰인다

_ => SomeThing

이 무시패턴을 통해서 switch 식에서 모든 경우를 처리할 수 있게 된다. 위의 식은 모든 조건에 대해서 SomeThing이다.

'부트캠프' 카테고리의 다른 글

전략패턴  (0) 2023.09.25
Awake와 Start 타이밍 이슈 및 Instantiate  (0) 2023.09.22
Find계열 함수를 지양하자.  (0) 2023.09.19
오브젝트 풀 만들기  (0) 2023.09.18
팀 프로젝트 마무리(협업을 잘하자)  (0) 2023.09.14