Freigeben über


Shadows (Visual Basic)

Gibt an, dass ein deklariertes Programmierelement ein gleichnamiges Element oder eine Gruppe von überladenen Elementen in einer Basisklasse neu deklariert und ausblendet.

Bemerkungen

Der Hauptzweck von Shadowing (auch bekannt als Ausblenden nach Name) besteht darin, die Definition Ihrer Klassenmember beizubehalten. Die Basisklasse kann eine Änderung erfahren, durch die ein Element mit demselben Namen wie ein bereits definiertes Element entsteht. In diesem Fall erzwingt der Shadows-Modifizierer, dass Verweise über Ihre Klasse in den von Ihnen definierten Member aufgelöst werden, anstatt 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. Shadows kann nur auf Klassenebene verwendet werden. Das bedeutet, dass der Deklarationskontext für ein Shadows-Element eine Klasse sein muss und keine Quelldatei, kein Namespace, keine Schnittstelle, kein Modul, keine Struktur oder Prozedur sein darf.

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

  • Kombinierte Modifizierer. Sie können Shadows nicht zusammen mit Overloads, Overrides oder Static in derselben Deklaration angeben.

  • Elementtypen: Sie können ein Shadowing von jedem deklarierten Element mit einer anderen Art vornehmen. Wenn Sie Shadowing für eine Eigenschaft oder Prozedur mit einer anderen Eigenschaft oder Prozedur durchführen, müssen die Parameter und der Rückgabetyp nicht mit denen in der Basisklasseeigenschaft oder -prozedur übereinstimmen.

  • Zugriff: Das Element in der Basisklasse, für das Shadowing durchgeführt wird, ist normalerweise innerhalb der abgeleiteten Klasse, die das Shadowing durchführt, nicht verfügbar. Es gelten jedoch die folgenden Überlegungen.

    • Ist das Shadowingelement von dem Code aus, der darauf verweist, nicht zugänglich, wird der Verweis auf das Shadowingelement aufgelöst. Wenn beispielsweise ein Private-Element Shadowing für ein Basisklassenelement durchführt, greift der Code, der nicht über die Berechtigung für den Zugriff auf das Private-Element verfügt, anstelle auf das Basisklassenelement zu.

    • Wenn Sie Shadowing für ein Element durchführen, können Sie weiterhin über ein Objekt mit dem Typ der Basisklasse auf das Shadowingelement zugreifen. Sie können auch über MyBase darauf zugreifen.

Der Shadows-Modifizierer kann in folgenden Kontexten verwendet werden:

Weitere Informationen