Partial(Visual Basic)

클래스 또는 구조체 선언이 클래스 또는 구조체의 부분 정의임을 나타냅니다.

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

참고

Visual Basic 지원 부분 메서드, 일반적으로 partial 클래스에서 구현됩니다.자세한 내용은 부분 메서드(Visual Basic)Sub 문(Visual Basic)을 참조하십시오.

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

요소

용어

정의

attrlist

선택적 요소. 이 클래스나 구조체에 적용되는 특성의 목록으로 특성 목록(Visual Basic)을 꺾쇠괄호(< >)로 묶어야 합니다.

accessmodifier

선택적 요소. 이 클래스나 구조체에 액세스할 수 있는 코드를 지정합니다. 자세한 내용은 Visual Basic의 액세스 수준를 참조하십시오.

Shadows

선택적 요소. 자세한 내용은 Shadows(Visual Basic)를 참조하십시오.

MustInherit

선택적 요소. 자세한 내용은 MustInherit(Visual Basic)를 참조하십시오.

NotInheritable

선택적 요소. 자세한 내용은 NotInheritable(Visual Basic)를 참조하십시오.

name

필수 요소. 이 클래스나 구조체의 이름이며 동일한 클래스나 구조체의 다른 모든 partial 선언에 정의된 이름과 일치해야 합니다.

Of

선택적 요소. 이것이 제네릭 클래스 또는 구조체임을 지정합니다. 자세한 내용은 Visual Basic의 제네릭 형식(Visual Basic)를 참조하십시오.

typelist

Of를 사용하는 경우 필수적 요소입니다. 자세한 내용은 형식 목록(Visual Basic)를 참조하십시오.

Inherits

선택적 요소. 자세한 내용은 Inherits 문를 참조하십시오.

classname

Inherits를 사용하는 경우 필수적 요소입니다. 이 클래스가 파생되는 클래스나 인터페이스의 이름입니다.

Implements

선택적 요소. 자세한 내용은 Implements 문를 참조하십시오.

interfacenames

Implements를 사용하는 경우 필수적 요소입니다. 이 클래스나 구조체에 의해 구현된 인터페이스의 이름입니다.

variabledeclarations

선택적 요소. 클래스나 구조체에 대한 추가 변수와 이벤트를 선언하는 문입니다.

proceduredeclarations

선택적 요소. 클래스나 구조체에 대한 추가 프로시저를 선언하고 정의하는 문입니다.

End Class 또는 End Structure

이 부분 Class 또는 Structure 정의를 끝냅니다.

설명

Visual Basic에서는 partial 클래스 정의를 사용하여 사용자가 작성한 코드와 생성된 코드를 서로 다른 소스 파일로 분리합니다. 예를 들어, Windows Form 디자이너Form과 같은 컨트롤에 대한 partial 클래스를 정의합니다. 이러한 컨트롤에서 생성된 코드를 수정하면 안 됩니다.

partial 클래스 또는 구조체를 만드는 경우 클래스나 구조체 생성에 대한 모든 규칙(예: 한정자 사용 및 상속에 대한 규칙)이 적용됩니다.

최선의 구현 방법

  • 일반적인 상황에서는 단일 클래스 또는 구조체를 둘 이상의 선언으로 분리하여 개발하면 안 됩니다. 따라서 대부분의 경우에 Partial 키워드가 필요하지 않습니다.

  • 가독성을 위해 클래스나 구조체의 모든 partial 선언에는 Partial 키워드가 포함되어야 합니다. 컴파일러는 하나의 partial 선언에서만 이 키워드를 생략하는 것을 허용합니다. 둘 이상의 partial 선언에서 이 키워드가 생략되면 컴파일러는 오류를 표시합니다.

동작

  • 선언의 합집합. 컴파일러는 클래스나 구조체를 모든 partial 선언의 합집합으로 처리합니다. 모든 부분 정의의 모든 한정자는 전체 클래스나 구조체에 적용되며 모든 부분 정의의 모든 멤버를 전체 클래스나 구조체에서 사용할 수 있습니다.

  • 모듈의 부분 형식(Partial Type)에 형식 승격 허용되지 않음. 모듈 안에 부분 정의가 있으면 해당 클래스나 구조체의 형식 승격이 자동으로 적용되지 않습니다. 이러한 경우 부분 정의 집합으로 인해 예기치 않은 결과가 발생할 수 있으며 컴파일러 오류가 발생할 수도 있습니다. 자세한 내용은 형식 승격(Visual Basic)를 참조하십시오.

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

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

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

참고 항목

참조

Class 문(Visual Basic)

Structure 문

Shadows(Visual Basic)

개념

형식 승격(Visual Basic)

Visual Basic의 제네릭 형식(Visual Basic)

부분 메서드(Visual Basic)