C# 14 - (7) event와 생성자에도 partial 메서드 적용
partial 예약어의 적용 범위가 꾸준히 확장되고 있는데요,
- C# 2.0 - partial 클래스 지원
- C# 3.0 - partial 메서드 지원
- C# 9.0 - partial 메서드 개선 (반환 타입 허용, out 매개변수 허용, 접근 제한자 허용)
- C# 13 - (8) 부분 메서드 정의를 속성 및 인덱서에도 확대
C# 14에서는,
Partial events and constructors
; https://github.com/dotnet/csharplang/issues/9058
More partial members
; https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-14#more-partial-members
말 그대로, 생성자와 이벤트의 구현을 partial로 나누어 작성할 수 있게 되었습니다.
partial class TestClass
{
partial TestClass(); // 기본 생성자의 선언
partial TestClass(int x, string y); // 매개변수가 있는 생성자의 선언
partial event Action<int, string> MyEvent; // 이벤트의 선언
}
partial class TestClass
{
partial TestClass() { } // 기본 생성자의 구현
partial TestClass(int x, string y) { } // 매개변수가 있는 생성자의 구현
partial event Action<int, string> MyEvent // 이벤트의 구현
{
add { }
remove { }
}
}
사실 partial class/method가 초기에는 마이크로소프트의 전유물처럼 사용되었지만, 이후
Source Generator가 나오면서 자동 생성 코드를 심심치 않게 사용되다 보니 partial 예약어의 요구 사항이 여기까지 이르게 된 것 같습니다.
정리하면, 여러분들이 Source Generator 도구를 작성하지 않는 이상, 이 구문을 쓰는 경우는 거의 없을 것입니다. ^^
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]