Shadows (Visual Basic)Shadows (Visual Basic)

Gibt an, dass ein deklariertes Programmierelement ein Element Blendet eine mit dem gleichen Namen oder einen Satz überladener Elemente in einer Basisklasse erneut deklariert.Specifies that a declared programming element redeclares and hides an identically named element, or set of overloaded elements, in a base class.

HinweiseRemarks

Der Hauptzweck des shadowings (Dies ist auch bekannt als Ausblenden von Namen) besteht darin, die Definition von Klassenmembern beizubehalten.The main purpose of shadowing (which is also known as hiding by name) is to preserve the definition of your class members. Die Basisklasse kann eine Änderung durchlaufen, die ein Element mit dem gleichen Namen wie eine erstellt wird, die Sie bereits definiert haben.The base class might undergo a change that creates an element with the same name as one you have already defined. In diesem Fall die Shadows Modifizierer erzwingt, dass Verweise über die Klasse, um der Member aufgelöst werden Sie definiert, statt auf das neue Element der Basisklasse.If this happens, the Shadows modifier forces references through your class to be resolved to the member you defined, instead of to the new base class element.

Sowohl das Shadowing als auch das Überschreiben definieren ein geerbtes Element neu, es gibt jedoch bedeutende Unterschiede zwischen den beiden Vorgehensweisen.Both shadowing and overriding redefine an inherited element, but there are significant differences between the two approaches. Weitere Informationen finden Sie unter Shadowing in Visual Basic.For more information, see Shadowing in Visual Basic.

RegelnRules

  • Deklarationskontext.Declaration Context. Sie können Shadows nur auf Klassenebene.You can use Shadows only at class level. Dies bedeutet, dass der Deklarationskontext für eine Shadows Element muss eine Klasse sein, und eine Quelldatei, Namespace, Schnittstelle, Modul, Struktur oder Prozedur nicht möglich.This means the declaration context for a Shadows element must be a class, and cannot be a source file, namespace, interface, module, structure, or procedure.

    Sie können nur ein shadowing-Element in einer einzigen deklarationsanweisung deklarieren.You can declare only one shadowing element in a single declaration statement.

  • Kombinierte Modifizierer.Combined Modifiers. Sie können keine angeben Shadows zusammen mit Overloads, Overrides, oder Static in der gleichen Deklaration.You cannot specify Shadows together with Overloads, Overrides, or Static in the same declaration.

  • Elementtypen.Element Types. Sie können ein Shadowing von jedem deklarierten Element mit einer anderen Art vornehmen.You can shadow any kind of declared element with any other kind. Wenn Sie Shadowing für eine Eigenschaft oder Prozedur mit einer anderen Eigenschaft oder Prozedur, müssen die Parameter sowie des Rückgabetyps nicht mit denen in der Basisklasse-Eigenschaft oder Prozedur übereinstimmen.If you shadow a property or procedure with another property or procedure, the parameters and the return type do not have to match those in the base class property or procedure.

  • Zugriff auf.Accessing. Das Shadowing-Element in der Basisklasse ist normalerweise nicht verfügbar, in der abgeleiteten Klasse, die es Shadowing durchführt.The shadowed element in the base class is normally unavailable from within the derived class that shadows it. Allerdings gelten die folgenden Überlegungen.However, the following considerations apply.

    • Ist das shadowing-Element nicht zugegriffen werden kann, aus dem Code, der darauf verweist, wird der Verweis auf das Shadowing-Element aufgelöst.If the shadowing element is not accessible from the code referring to it, the reference is resolved to the shadowed element. Z. B. wenn ein Private Element führt Shadowing für eine Basisklasse-Element, Code, der keine Berechtigung zum Zugriff auf die Private Element greift stattdessen auf das Basisklasse-Element.For example, if a Private element shadows a base class element, code that does not have permission to access the Private element accesses the base class element instead.

    • Wenn Sie ein Element spiegeln, können Sie weiterhin das Shadowing-Element durch ein Objekt mit dem Typ der Basisklasse deklariert zugreifen.If you shadow an element, you can still access the shadowed element through an object declared with the type of the base class. Sie können auch über zugreifen MyBase.You can also access it through MyBase.

Der Shadows-Modifizierer kann in folgenden Kontexten verwendet werden:The Shadows modifier can be used in these contexts:

Siehe auchSee also