Share via


Schaduwen (Visual Basic)

Hiermee geeft u op dat een gedeclareerd programmeerelement een identiek benoemd element, of een set overbelaste elementen, opnieuw declareert en verbergt in een basisklasse.

Opmerkingen

Het belangrijkste doel van schaduwen (ook wel bekend als verbergen op naam) is het behouden van de definitie van uw klasleden. De basisklasse kan een wijziging ondergaan waarmee een element wordt gemaakt met dezelfde naam als een element dat u al hebt gedefinieerd. Als dit gebeurt, dwingt de Shadows wijzigingsfunctie af dat verwijzingen via uw klasse worden omgezet naar het lid dat u hebt gedefinieerd, in plaats van naar het nieuwe basisklasse-element.

Zowel schaduwen als negeren herdefinieren van een overgenomen element, maar er zijn aanzienlijke verschillen tussen de twee benaderingen. Zie Schaduwen in Visual Basic voor meer informatie.

Regels

  • Declaratiecontext. U kunt alleen op klasniveau gebruiken Shadows . Dit betekent dat de declaratiecontext voor een Shadows element een klasse moet zijn en geen bronbestand, naamruimte, interface, module, structuur of procedure is.

    U kunt slechts één schaduwelement declareren in één declaratie-instructie.

  • Gecombineerde modifiers. U kunt niet samen metOverloads, Overridesof Static in dezelfde declaratie opgevenShadows.

  • Elementtypen. U kunt elk type gedeclareerd element schaduwen met elk ander type. Als u een eigenschap of procedure met een andere eigenschap of procedure schaduwt, hoeven de parameters en het retourtype niet overeen te komen met die in de basisklasse-eigenschap of -procedure.

  • Toegang krijgen tot. Het schaduwelement in de basisklasse is normaal gesproken niet beschikbaar vanuit de afgeleide klasse waarmee het wordt schaduwen. De volgende overwegingen zijn echter van toepassing.

    • Als het schaduwelement niet toegankelijk is vanuit de code die ernaar verwijst, wordt de verwijzing omgezet in het schaduwelement. Als een Private element bijvoorbeeld een basisklasse-element schaduwt, heeft code die geen toegang heeft tot het Private element, in plaats daarvan toegang tot het basisklasse-element.

    • Als u een element schaduwt, hebt u nog steeds toegang tot het schaduwelement via een object dat is gedeclareerd met het type basisklasse. U kunt het ook openen via MyBase.

De Shadows wijzigingsfunctie kan in deze contexten worden gebruikt:

Zie ook