Dela via


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 ett Shadows 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 med Overloads, Overrideseller Static 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 elementet Private 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:

Se även