partial 메서드(C# 참조)

부분 메서드는 부분 형식의 한 부분에서 해당 시그니처가 정의되고 형식의 다른 부분에서 해당 구현이 정의됩니다. 클래스 디자이너는 부분 메서드를 통해 개발자가 구현 여부를 결정할 수 있는 이벤트 처리기와 유사한 메서드 후크를 제공할 수 있습니다. 개발자가 구현을 제공하지 않을 경우 컴파일러는 컴파일 시간에 시그니처를 제거합니다. 부분 메서드에는 다음 조건이 적용됩니다.

  • 선언은 상황별 키워드 partial로 시작해야 합니다.

  • 부분 형식의 두 부분에 있는 시그니처가 일치해야 합니다.

생성자, 종료자, 오버로드된 연산자, 속성 선언 또는 이벤트 선언에는 partial 키워드가 허용되지 않습니다.

부분 메서드는 다음 경우에 구현을 포함할 필요가 없습니다.

해당 일부 제한 사항을 따르지 않는 모든 메서드(public virtual partial void 메서드)는 구현을 제공해야 합니다.

다음 예제에서는 partial 클래스의 두 부분에서 정의된 부분 메서드를 보여 줍니다.

namespace PM
{
    partial class A
    {
        partial void OnSomethingHappened(string s);
    }

    // This part can be in a separate file.
    partial class A
    {
        // Comment out this method and the program
        // will still compile.
        partial void OnSomethingHappened(String s)
        {
            Console.WriteLine("Something happened: {0}", s);
        }
    }
}

부분 메서드는 소스 생성기와 결합하여 유용하게 사용할 수도 있습니다. 예를 들어, 다음 패턴을 사용하여 regex를 정의할 수 있습니다.

[GeneratedRegex("(dog|cat|fish)")]
partial bool IsPetMatch(string input);

자세한 내용은 참조 Partial 클래스 및 메서드합니다.

참고 항목