Freigeben über


Schatten (Visual Basic)

Gibt an, dass ein deklariertes Programmierelement in einer Basisklasse ein identisch benanntes Element neu deklariert und ausgeblendet oder eine Reihe überladener Elemente ausgeblendet wird.

Bemerkungen

Der Hauptzweck der Schattierung (auch als "Ausblenden nach Name" bezeichnet) besteht darin, die Definition Ihrer Klassenmitglieder beizubehalten. Die Basisklasse kann sich einer Änderung unterziehen, durch die ein Element mit demselben Namen erstellt wird, den Sie bereits definiert haben. Wenn dies der Fall ist, zwingt der Shadows Modifizierer dazu, dass Verweise durch Ihre Klasse auf das von Ihnen definierte Mitglied aufgelöst werden, anstatt auf das neue Basisklassenelement.

Sowohl Schattierung als auch Außerkraftsetzung definieren ein geerbtes Element neu, aber es gibt erhebliche Unterschiede zwischen den beiden Ansätzen. Weitere Informationen finden Sie unter Schatten in Visual Basic.

Regeln

  • Deklarationskontext. Sie können nur auf Klassenebene verwenden Shadows . Dies bedeutet, dass der Deklarationskontext für ein Shadows Element eine Klasse sein muss und keine Quelldatei, kein Namespace, eine Schnittstelle, ein Modul, eine Struktur oder eine Prozedur sein kann.

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

  • Kombinierte Modifizierer. Sie können nicht zusammen mit Overloads, Overridesoder Static in derselben Deklaration angebenShadows.

  • Elementtypen. Sie können jede Art deklarierter Elemente mit jeder anderen Art abschatten. Wenn Sie eine Eigenschaft oder Prozedur mit einer anderen Eigenschaft oder Prozedur abschatten, müssen die Parameter und der Rückgabetyp nicht mit den Eigenschaften oder Prozeduren der Basisklasse übereinstimmen.

  • Zugreifend. Das abgeschattete Element in der Basisklasse ist normalerweise nicht in der abgeleiteten Klasse verfügbar, die es schattiert. Die folgenden Überlegungen gelten jedoch.

    • Wenn auf das Schattenelement nicht über den darauf verweisenden Code zugegriffen werden kann, wird der Verweis auf das schattierte Element aufgelöst. Wenn z. B. ein Element ein Private Basisklassenelement schattiert, greift Code, der nicht über die Berechtigung zum Zugriff auf das Private Element verfügt, stattdessen auf das Basisklassenelement zu.

    • Wenn Sie ein Element abschatten, können Sie weiterhin über ein Objekt zugreifen, das mit dem Typ der Basisklasse deklariert wurde. Sie können auch über MyBase.

Der Shadows Modifizierer kann in folgenden Kontexten verwendet werden:

Siehe auch