We Need to Talk About Unions in C#
- C# 15(preview) 또는 C# 16에서 Union 타입이 추가될 예정이며, 이는 C# 코딩 방식을 근본적으로 바꿀 수 있는 중요한 기능임 🎉
- Nominal Type Unions는 Union 타입의 기본으로, 특정 타입(예: Cat 또는 Dog)만 Union으로 허용하여 Exhaustiveness를 보장함 🐱
- Standard Type Unions는
Union<T1, T2, ...>
형태로 제공되며, 여러 타입 중 하나를 가질 수 있게 해 API 응답 처리 등에 유용함 💡
- Union 인터페이스는 런타임에 Union 타입을 식별하고 접근하는 데 사용되며, 라이브러리 개발자에게 유용할 수 있음 🛠️
- Closed Enums는 Enum 값이 정의된 값 중 하나로 제한되어 Exhaustiveness를 보장하며, 예외적인 Enum 값 사용을 방지함 🚫
- Closed Hierarchies는 클래스 상속을 동일 어셈블리 내에서만 허용하여 타입 안정성을 높이고 Exhaustiveness 검사를 용이하게 함 🔒
- Case Declarations는 Closed 타입의 Nested Case를 선언하는 축약형 구문으로, 코드 간결성을 높임 ✍️
- Target-Typed Static Member Access는 특정 상황에서 타입 지정을 생략할 수 있게 하지만, 다소 난해한 구문을 가짐 🤔
- Target Type Inference는 변수 타입을 문맥으로부터 추론하여 코드 작성을 더 편리하게 함 💫
- 전체적으로 Union 타입은 C#에 강력한 타입 시스템을 제공하고, 코드의 안정성과 가독성을 향상시킬 수 있음 👍