다음을 통해 공유


Partial(Visual Basic)

형식 선언이 형식의 부분 정의임을 나타냅니다.

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

비고

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

문법

[ <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 선택 사항입니다. 이 형식에 액세스할 수 있는 코드를 지정합니다. Visual Basic의 액세스 수준을 참조하세요.
Shadows 선택 사항입니다. 그림자를 참조하세요.
MustInherit 선택 사항입니다. MustInherit을 참조하세요.
NotInheritable 선택 사항입니다. NotInheritable을 참조하세요.
name 필수 사항입니다. 이 형식의 이름입니다. 동일한 형식의 다른 모든 부분 선언에 정의된 이름과 일치해야 합니다.
Of 선택 사항입니다. 제네릭 형식임을 지정합니다. Visual Basic의 제네릭 형식을 참조하세요.
typelist 다음을 사용하는 경우 필수 입니다. 형식 목록을 참조하세요.
Inherits 선택 사항입니다. Inherits 문을 참조하세요.
classname 를 사용하는 Inherits경우 필수입니다. 이 클래스가 파생되는 클래스 또는 인터페이스의 이름입니다.
Implements 선택 사항입니다. Implements 문을 참조하세요.
interfacenames 를 사용하는 Implements경우 필수입니다. 이 형식이 구현하는 인터페이스의 이름입니다.
variabledeclarations 선택 사항입니다. 형식에 대한 추가 변수 및 이벤트를 선언하는 문입니다.
proceduredeclarations 선택 사항입니다. 형식에 대한 추가 프로시저를 선언하고 정의하는 문입니다.
End Class 또는 End Structure 이 부분 Class 또는 Structure 정의를 종료합니다.

비고

Visual Basic은 부분 클래스 정의를 사용하여 생성된 코드를 별도의 소스 파일의 사용자 작성 코드와 분리합니다. 예를 들어 Windows Form Designer 는 다음과 같은 Form컨트롤에 대한 부분 클래스를 정의합니다. 이러한 컨트롤에서 생성된 코드를 수정해서는 안 됩니다.

한정자 사용 및 상속과 같은 클래스, 구조체, 인터페이스 및 모듈 생성에 대한 모든 규칙은 부분 형식을 만들 때 적용됩니다.

모범 사례

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

  • 가독성을 위해 형식의 모든 부분 선언에는 키워드가 Partial 포함되어야 합니다. 컴파일러에서는 하나 이상의 부분 선언에서 키워드를 생략할 수 있습니다. 둘 이상 생략하면 컴파일러에서 오류를 알 수 있습니다.

행동

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

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

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

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

Class 문

구조문

예시

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

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

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

참고하십시오