宣言されたプログラミング要素が、基底クラスで同じ名前の要素またはオーバーロードされた要素のセットを再宣言して非表示にすることを指定します。
注釈
シャドウの主な目的 ( 名前による非表示とも呼ばれます) は、クラス メンバーの定義を保持することです。 基底クラスは、既に定義した名前と同じ名前の要素を作成する変更を受ける可能性があります。 この場合、 Shadows
修飾子は、新しい基底クラス要素ではなく、定義したメンバーに対して、クラスを介した参照の解決を強制します。
シャドウ処理とオーバーライドの両方で継承された要素が再定義されますが、2 つのアプローチには大きな違いがあります。 詳細については、「 Visual Basic でのシャドウ」を参照してください。
準則
宣言コンテキスト。
Shadows
はクラス レベルでのみ使用できます。 つまり、Shadows
要素の宣言コンテキストはクラスである必要があり、ソース ファイル、名前空間、インターフェイス、モジュール、構造体、またはプロシージャにすることはできません。1 つの宣言ステートメントで宣言できるシャドウ要素は 1 つだけです。
結合された修飾子。 同じ宣言で
Overloads
、Overrides
、またはStatic
と共にShadows
を指定することはできません。要素型。 宣言された任意の種類の要素を他の種類でシャドウできます。 プロパティまたはプロシージャを別のプロパティまたはプロシージャでシャドウする場合、パラメーターと戻り値の型は、基底クラスのプロパティまたはプロシージャのパラメーターと一致する必要はありません。
アクセス。 基底クラスのシャドウされた要素は、通常、それをシャドウする派生クラス内から使用できません。 ただし、次の考慮事項が適用されます。
シャドウ要素に参照するコードからアクセスできない場合、参照はシャドウされた要素に解決されます。 たとえば、
Private
要素が基底クラス要素をシャドウする場合、Private
要素にアクセスする権限を持たないコードは、代わりに基底クラス要素にアクセスします。要素をシャドウする場合でも、基底クラスの型で宣言されたオブジェクトを介してシャドウされた要素にアクセスできます。
MyBase
を使用してアクセスすることもできます。
Shadows
修飾子は、次のコンテキストで使用できます。
こちらも参照ください
.NET