Skuggor (Visual Basic)
Anger att ett deklarerat programmeringselement redeclares och döljer ett identiskt namngivet element, eller en uppsättning överlagrade element, i en basklass.
Kommentarer
Huvudsyftet med skuggning (som även kallas att dölja med namn) är att bevara definitionen av dina klassmedlemmar. Basklassen kan genomgå en ändring som skapar ett element med samma namn som ett som du redan har definierat. Om detta händer Shadows
tvingar modifieraren referenser via klassen att matchas till den medlem som du definierade, i stället för till det nya basklasselementet.
Både skuggning och åsidosättande omdefinierar ett ärvt element, men det finns betydande skillnader mellan de två metoderna. Mer information finns i Skuggning i Visual Basic.
Regler
Deklarationskontext. Du kan bara använda
Shadows
på klassnivå. Det innebär att deklarationskontexten för ettShadows
element måste vara en klass och inte kan vara en källfil, namnrymd, gränssnitt, modul, struktur eller procedur.Du kan bara deklarera ett skuggelement i en enda deklarationssats.
Kombinerade modifierare. Du kan inte ange
Shadows
tillsammans medOverloads
,Overrides
ellerStatic
i samma deklaration.Elementtyper. Du kan skugga alla typer av deklarerade element med någon annan typ. Om du skuggar en egenskap eller procedur med en annan egenskap eller procedur behöver parametrarna och returtypen inte matcha dem i basklassegenskapen eller -proceduren.
Åtkomst. Det skuggade elementet i basklassen är normalt inte tillgängligt från den härledda klassen som skuggar det. Följande överväganden gäller dock.
Om skuggelementet inte är tillgängligt från koden som refererar till det matchas referensen till det skuggade elementet. Om ett
Private
element till exempel skuggar ett basklasselement, kommer kod som inte har behörighet att komma åt elementetPrivate
att komma åt basklasselementet i stället.Om du skuggar ett element kan du fortfarande komma åt det skuggade elementet via ett objekt som deklarerats med basklassens typ. Du kan också komma åt den via
MyBase
.
Modifieraren Shadows
kan användas i följande sammanhang: