partial 형식
partial 형식 (C# 참조)
partial 형식은 타입 선언을 여러 파일로 나눠서 쓸 수 있게 해 주는 선언 방식이에요.
본문
partial 형식 정의를 쓰면 class, struct, interface, record의 정의를 여러 개로 나눠서 선언할 수 있어요. 이 여러 정의를 같은 프로젝트 안에서 서로 다른 파일에 둘 수도 있죠. 이때 한쪽 선언에는 partial 멤버의 시그니처만 넣어요:
partial class A
{
int num = 0;
void MethodA() { }
partial void MethodC();
}
다른 쪽 선언에는 그 partial 멤버의 구현을 담아요:
partial class A
{
void MethodB() { }
partial void MethodC() { }
}
partial 형식의 선언은 같은 파일에 둘 수도, 여러 파일에 나눠 둘 수도 있어요. 보통은 두 선언을 서로 다른 파일에 두죠. 언제 이렇게 나눌까요? 대규모 프로젝트를 다룰 때, Windows Forms 디자이너처럼 자동으로 생성되는 코드가 섞여 있을 때, 또는 RegEx 같은 소스 생성기(Source generator)를 쓸 때가 대표적이에요. partial 형식에는 partial 멤버를 담을 수 있어요.
C# 13부터는 partial 속성(property)과 partial 인덱서(indexer)를 정의할 수 있어요. C# 14부터는 partial 인스턴스 생성자와 partial 이벤트도 정의할 수 있죠. C# 13 이전에는 메서드만 partial 멤버로 정의할 수 있었어요.
문서 주석(doc comment)은 선언하는 쪽 또는 구현하는 쪽 중 한 곳에만 달면 돼요. 두 타입 선언 모두에 문서 주석을 달면, 각 선언의 XML 요소가 출력 XML에 모두 포함돼요. partial 멤버 선언에 관한 규칙은 partial 멤버 문서를 참고해 주세요.
특성(attribute)도 어느 한쪽 선언에 적용할 수 있어요. 컴파일러는 두 선언의 특성을 모두 합치는데, 중복된 특성까지 포함해서 합쳐요.