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 einShadows
-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 mitOverloads
,Overrides
oderStatic
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 dasPrivate
-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: