Partial(Visual Basic)

형식 선언이 해당 형식에 대한 부분 정의임을 나타냅니다.

Partial 키워드를 사용하여 형식 정의를 다수의 선언으로 나눌 수 있습니다. 원하는 만큼 다양한 소스 파일에서 원하는 만큼 partial 선언을 사용할 수 있습니다. 그러나 모든 선언이 동일한 어셈블리와 동일한 네임스페이스에 있어야 합니다.

참고 항목

Visual Basic에서는 일반적으로 partial 클래스에서 구현되는 부분 메서드(Partial Method)를 지원합니다. 자세한 내용은 부분 메서드(Partial Method)Sub 문을 참조하세요.

구문

[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _  
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]  
    [ Inherits classname ]  
    [ Implements interfacenames ]  
    [ variabledeclarations ]  
    [ proceduredeclarations ]  
{ End Class | End Structure }  

부분

용어 정의
attrlist 선택 사항. 이 형식에 적용되는 특성의 목록입니다. 특성 목록을 꺾쇠 괄호(< >)로 묶어야 합니다.
accessmodifier 선택 사항. 이 형식에 액세스할 수 있는 코드를 지정합니다. Access levels in Visual Basic을 참조하세요.
Shadows 선택 사항. Shadows를 참조하세요.
MustInherit 선택 사항. MustInherit를 참조하세요.
NotInheritable 선택 사항. NotInheritable을 참조하세요.
name 필수입니다. 이 형식의 이름입니다. 동일한 형식의 다른 모든 partial 선언에 정의된 이름과 일치해야 합니다.
Of 선택 사항. 제네릭 형식임을 지정합니다. Visual Basic의 제네릭 형식을 참조하세요.
typelist Of를 사용하는 경우 필수입니다. 형식 목록을 참조하세요.
Inherits 선택 사항. Inherits 문을 참조하세요.
classname Inherits를 사용하는 경우 필수입니다. 이 클래스가 파생되는 출처인 인터페이스 또는 클래스의 이름입니다.
Implements 선택 사항. Implements 문을 참조하세요.
interfacenames Implements를 사용하는 경우 필수입니다. 이 형식이 구현하는 인터페이스의 이름입니다.
variabledeclarations 선택 사항. 형식에 대한 추가 변수 및 이벤트를 선언하는 문입니다.
proceduredeclarations 선택 사항. 형식에 대한 추가 프로시저를 선언하고 정의하는 문입니다.
End Class 또는 End Structure Class 또는 Structure에 대한 이 부분적 정의를 종료합니다.

설명

Visual Basic에서는 사용자가 별도의 소스 파일에서 작성한 코드에서 생성된 코드를 구분하는 데 partial 클래스 정의를 사용합니다. 예를 들어, Windows Form 디자이너에서는 Form과 같은 컨트롤에 대해 partial 클래스를 정의합니다. 이런 컨트롤에서 생성된 코드를 수정해서는 안 됩니다.

부분 형식(Partial Type)을 만들면 클래스, 구조체, 인터페이스 및 모듈 만들기에 대한 모든 규칙(예; 한정자 사용 및 상속에 대한 규칙)이 적용됩니다.

좋은 연습 방법

  • 일반적인 상황에서는 단일 형식의 개발을 두 개 이상의 선언으로 분할해서는 안 됩니다. 따라서 대부분의 경우 Partial 키워드가 필요 없습니다.

  • 가독성을 위해, 형식에 대한 모든 partial 선언에는 Partial 키워드를 포함해야 합니다. 컴파일러는 최대 하나의 partial 선언에서 이 키워드가 생략되는 것을 허용합니다. 두 개 이상의 partial 선언에서 이를 생략하는 경우 컴파일러에서 오류를 알립니다.

동작

  • 선언의 공용 구조체입니다. 컴파일러는 이 형식을 모든 partial 선언의 공용 구조체로 처리합니다. 모든 부분 정의의 모든 한정자는 전체 형식에 적용되며, 모든 부분 정의의 모든 멤버를 전체 형식에 사용할 수 있습니다.

  • 모듈에 있는 부분 형식(Partial Type)에 대한 형식 승격이 허용되지 않습니다. 모듈 내부에 부분 정의가 있는 경우 해당 형식의 형식 승격은 자동으로 무효화됩니다. 이러한 경우 일련의 부분 정의로 인해 예기치 않은 결과뿐만 아니라 컴파일러 오류도 발생할 수 있습니다. 자세한 내용은 형식 승격을 참조하세요.

    컴파일러는 정규화된 경로가 동일한 경우에만 부분 정의를 병합합니다.

Partial 키워드는 다음 컨텍스트에서 사용할 수 있습니다.

Class 문

Structure 문

예시

다음 예제에서는 클래스 sampleClass의 정의를 두 개의 선언으로 분할합니다(여기서 각 선언은 서로 다른 Sub 프로시저를 정의함).

Partial Public Class sampleClass
    Public Sub sub1()
    End Sub
End Class
Partial Public Class sampleClass
    Public Sub sub2()
    End Sub
End Class

앞의 예제에서 두 개의 부분 정의는 동일한 소스 파일에 있거나 두 개의 서로 다른 소스 파일에 있을 수 있습니다.

참고 항목