Freigeben über


Shadows

Aktualisiert: November 2007

Gibt an, dass ein deklariertes Programmierelement ein Element mit derselben Bezeichnung oder eine Gruppe überladener Elemente in einer Basisklasse erneut deklariert und ausblendet.

Hinweise

Hauptzweck des Shadowing (das auch als Hide by Name bezeichnet wird) ist es, die Definition von Klassenmembern beizubehalten. Die Basisklasse wird vielleicht in einer Weise geändert, die ein Element mit dem gleichen Namen wie dem bereits definierten Namen zur Folge hat. In diesem Fall erzwingt der Shadows-Modifizierer, dass Verweise über die Klasse in den von Ihnen definierten Member aufgelöst werden und nicht in das neue Basisklassenelement.

Sowohl das Shadowing als auch das Überschreiben definieren ein geerbtes Element neu, es gibt jedoch bedeutende Unterschiede zwischen den beiden Vorgehensweisen. Weitere Informationen finden Sie unter Shadowing in Visual Basic.

Regeln

  • Deklarationskontext. Sie können Shadows nur auf Klassenebene verwenden. Dies bedeutet, dass der Deklarationskontext für ein Shadows-Element eine Klasse sein muss und es sich nicht um eine Quelldatei, einen Namespace, eine Schnittstelle, ein Modul, eine Struktur oder eine Prozedur handeln kann.

    Sie können in einer einzelnen Deklarationsanweisung nur ein Shadowingelement deklarieren.

  • **Kombinierte Modifizierer.**Shadows kann nicht zusammen mit Overloads, Overrides oder Static in derselben Deklaration verwendet werden.

  • Elementtypen. Sie können mit jeder Art von deklarierten Elementen ein Shadowing einer anderen Art durchführen. Wenn Sie mit einer Eigenschaft oder Prozedur ein Shadowing einer anderen Eigenschaft oder Prozedur ausführen, müssen die Parameter und der Rückgabetyp nicht mit jenen der Eigenschaft oder Prozedur der Basisklasse identisch sein.

  • Zugriff. Das Element der Basisklasse, für das ein Shadowing ausgeführt wurde, ist normalerweise innerhalb der abgeleiteten Klasse, mit der das Shadowing des Elements ausgeführt wird, nicht verfügbar. Folgendes ist jedoch zu berücksichtigen.

    • Wenn über den Code, der auf das Shadowingelement verweist, nicht auf dieses Element zugegriffen werden kann, wird der Verweis in das Element aufgelöst, für das ein Shadowing durchgeführt wurde. Wenn z. B. ein Private-Element ein Shadowing eines Basisklassenelements durchführt, greift Code ohne Zugriffsberechtigung für das Private-Element stattdessen auf das Basisklassenelement zu.

    • Wenn Sie ein Element spiegeln, können Sie dennoch mithilfe eines Objekts, das mit dem Typ der Basisklasse deklariert ist, auf das gespiegelte Element zugreifen. Sie können auch über MyBase darauf zugreifen.

Der Shadows-Modifizierer kann in folgenden Kontexten verwendet werden:

Class-Anweisung

Const-Anweisung

Declare-Anweisung

Delegate-Anweisung

Dim-Anweisung

Enum-Anweisung

Event-Anweisung

Function-Anweisung

Interface-Anweisung

Property-Anweisung

Structure-Anweisung

Sub-Anweisung

Siehe auch

Konzepte

Shadowing in Visual Basic

Referenz

Shared (Visual Basic)

Static (Visual Basic)

Private (Visual Basic)

MyBase

MustOverride

NotOverridable

Overloads

Overridable

Overrides