Shadows

更新 : 2007 年 11 月

宣言されたプログラミング要素が、基本クラスにある、同じ名前を持つ要素またはオーバーロードされる要素を宣言し直すことを示します。

解説

シャドウ (名前による隠ぺいとも呼ばれます) の主な目的は、クラス メンバの定義を保持することにあります。基本クラスは、既に定義されている要素と同じ名前の要素を作成するように変更される可能性もあります。このような場合、Shadows 修飾子を指定してあると、派生クラスを通じた参照は新しい基本クラスの要素に解決されず、派生クラスで定義したメンバに解決されます。

シャドウとオーバーライドはどちらも継承された要素を再定義しますが、この 2 つの方法には重大な違いがあります。詳細については、「Visual Basic におけるシャドウ」を参照してください。

ルール

  • 宣言コンテキストShadows は、クラス レベルでのみ使用できます。つまり、Shadows 要素の宣言コンテキストはクラスであることが必要で、ソース ファイル、名前空間、インターフェイス、モジュール、構造体、またはプロシージャでは宣言できません。

    1 つの宣言ステートメントに宣言できるシャドウ要素は 1 つだけです。

  • 修飾子の結合 同じ宣言内で Shadows を Overloads、Overrides、または Static と共に指定することはできません。

  • 要素の型が合っていること。 宣言された要素は、他の任意の種類の要素でシャドウできます。プロパティまたはプロシージャを別のプロパティまたはプロシージャでシャドウする場合、パラメータおよび戻り値の型は、基本クラスのプロパティまたはプロシージャのパラメータおよび戻り値の型と一致しなくてもかまいません。

  • アクセス 通常、シャドウされた基本クラスの要素は、その要素をシャドウする派生クラスからは使用できません。ただし、次の点に注意してください。

    • シャドウする要素が、その要素を参照するコードからアクセス不可能である場合、参照はシャドウされる要素に解決されます。たとえば、Private 要素が基本クラスの要素をシャドウした場合、その Private 要素へのアクセス許可を持たないコードは、基本クラスの要素へ代わりにアクセスします。

    • 要素をシャドウした場合でも、基本クラスの型で宣言されたオブジェクトを使用すると、シャドウされた要素にアクセスできます。MyBase を使用してアクセスすることもできます。

修飾子 Shadows は、次の構文で使用します。

Class ステートメント

Const ステートメント

Declare ステートメント

Delegate ステートメント

Dim ステートメント

Enum ステートメント

Event ステートメント

Function ステートメント

Interface ステートメント

Property ステートメント

Structure ステートメント

Sub ステートメント

参照

概念

Visual Basic におけるシャドウ

参照

Shared (Visual Basic)

Static (Visual Basic)

Private (Visual Basic)

MyBase

MustOverride

NotOverridable

Overloads

Overridable

Overrides