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 |
任意。 どのようなコードから型にアクセスできるのかを指定します。 「 Access levels in Visual Basic」を参照してください。 |
Shadows |
任意。 「Shadows」を参照してください。 |
MustInherit |
任意。 「MustInherit」を参照してください。 |
NotInheritable |
任意。 「NotInheritable」を参照してください。 |
name |
必須です。 この型の名前です。 同じ型の他のすべての部分宣言で定義されている名前と一致する必要があります。 |
Of |
任意。 これがジェネリック型であることを指定します。 「Visual Basic におけるジェネリック型」を参照してください。 |
typelist |
Of を使用する場合は必ず指定します。 「型リスト」を参照してください。 |
Inherits |
任意。 「Inherits ステートメント」を参照してください。 |
classname |
Inherits を使用する場合は必ず指定します。 このクラスの派生元のクラスまたはインターフェイスの名前です。 |
Implements |
任意。 「Implements ステートメント」を参照してください。 |
interfacenames |
Implements を使用する場合は必ず指定します。 この型が実装するインターフェイスの名前を指定します。 |
variabledeclarations |
任意。 この型の追加の変数やイベントを宣言するステートメントです。 |
proceduredeclarations |
任意。 この型の追加のプロシージャを宣言および定義するステートメントです。 |
End Class または End Structure |
この Class または Structure の部分定義を終了します。 |
Remarks
Visual Basic では、部分クラス定義を使用して、生成されたコードとユーザーが作成したコードとを別々のソース ファイルに分離します。 たとえば、Windows フォーム デザイナーでは、Form などのコントロールに部分クラスを定義します。 これらのコントロールでは、生成されたコードを変更しないでください。
部分型を作成する際、クラス、構造体、インターフェイス、およびモジュールの作成に関するすべての規則 (修飾子の利用法や継承に関する規則など) が適用されます。
ベスト プラクティス
通常の状況では、1 つの型の開発を複数の宣言に分割しないようにします。 したがって、ほとんどの場合は、
Partial
キーワードは必要ありません。読みやすくするために、型の部分宣言にはすべて、
Partial
キーワードを含めます。 コンパイラでは、最大 1 つの部分宣言でキーワードを省略できますが、複数の部分宣言で省略するとエラーになります。
動作
宣言の共用体。 コンパイラは型を、すべての部分宣言の共用体として扱います。 すべての部分定義で使用されているすべての修飾子は、型全体に適用され、すべての部分定義のすべてのメンバーは、型全体で使用できます。
モジュール内の部分型は上位変換できません。 部分定義がモジュール内にある場合、その型の上位変換は自動的に失敗します。 この場合、一連の部分定義によって、予期しない結果になったり、場合によってはコンパイラ エラーが発生することがあります。 詳細については、「型の上位変換」を参照してください。
コンパイラは、完全修飾されたパスがまったく同じ場合にのみ、部分定義をマージします。
キーワード 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 つの部分定義は、同じソース ファイル内にあっても、別々のソース ファイル内にあってもかまいません。
関連項目
.NET