次の方法で共有


Partial (Visual Basic)

型宣言が型の部分的な定義であることを示します。

Partial キーワードを使用して、型の定義を複数の宣言に分割できます。 必要な数の異なるソース ファイルで、必要な数の部分宣言を使用できます。 ただし、すべての宣言は、同じアセンブリと同じ名前空間に存在する必要があります。

Visual Basic では 部分メソッドがサポートされています。これは通常、部分クラスで実装されます。 詳細については、「 部分メソッド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 任意。 この型にアクセスできるコードを指定します。 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などのコントロールの部分クラスを定義します。 これらのコントロールで生成されたコードを変更しないでください。

部分型を作成するときに、クラス、構造体、インターフェイス、およびモジュールの作成に関するすべての規則 (修飾子の使用や継承など) が適用されます。

ベスト プラクティス

  • 通常の状況では、1 つの型の開発を 2 つ以上の宣言に分割しないでください。 そのため、ほとんどの場合、 Partial キーワードは必要ありません。

  • 読みやすくするために、型のすべての部分宣言に Partial キーワードを含める必要があります。 コンパイラでは、最大 1 つの部分宣言でキーワードを省略できます。2 つ以上が省略された場合、コンパイラはエラーを通知します。

行動

  • 宣言の和集合。 コンパイラは、型をすべての部分宣言の和集合として扱います。 すべての部分定義のすべての修飾子が型全体に適用され、すべての部分定義のすべてのメンバーが型全体で使用できます。

  • モジュールの部分型の型昇格は許可されません。 部分定義がモジュール内にある場合、その型の型昇格は自動的に無効化されます。 このような場合、一連の部分的な定義によって、予期しない結果やコンパイラ エラーが発生する可能性があります。 詳細については、「 型の昇格」を参照してください。

    コンパイラは、完全修飾パスが同一の場合にのみ、部分定義をマージします。

Partial キーワードは、次のコンテキストで使用できます。

クラス ステートメント

構造ステートメント

次の例では、クラス sampleClass の定義を 2 つの宣言に分割し、それぞれが異なる Sub プロシージャを定義します。

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

前の例の 2 つの部分的な定義は、同じソース ファイルまたは 2 つの異なるソース ファイルに含まれる場合があります。

こちらも参照ください