Condividi tramite


Shadows (Visual Basic)

Specifica che un elemento di programmazione dichiarato ridichiara e nasconde un elemento con nome identico o un set di elementi di overload in una classe base.

Osservazioni:

Lo scopo principale dello shadowing (operazione nota anche come nascondere per nome) è mantenere la definizione dei membri della classe. La classe base potrebbe subire una modifica che crea un elemento con lo stesso nome di quello già definito. In questo caso, il modificatore Shadows forza la risoluzione dei riferimenti tramite la classe al membro definito, anziché al nuovo elemento della classe di base.

Sebbene lo shadowing e l'override ridefiniscano entrambi un elemento ereditato, tra i due metodi esistono differenze sostanziali. Per altre informazioni, vedere Shadowing in Visual Basic.

Regole

  • Contesto della dichiarazione. Si può usare Shadows solo a livello di classe. Ciò significa che il contesto della dichiarazione per un elemento Shadows deve essere una classe e non può essere un file di origine, uno spazio dei nomi, un'interfaccia, un modulo, una struttura o una routine.

    È possibile dichiarare un solo elemento shadowing in una singola istruzione di dichiarazione.

  • Modificatori combinati. Non è possibile specificare Shadows insieme a Overloads, Overrides o Static nella stessa dichiarazione.

  • Tipi di elemento. È possibile nascondere qualsiasi tipo di elemento dichiarato con qualsiasi altro tipo. Se si nasconde una proprietà o una routine con un'altra proprietà o routine, i parametri e il tipo restituiti non devono corrispondere a quelli nella proprietà o nella routine della classe base.

  • Accesso in corso. L'elemento nascosto nella classe di base in genere non è disponibile all'interno della classe derivata che lo nasconde. Tuttavia, si applicano le considerazioni seguenti.

    • Se l'elemento shadowing non è accessibile dal codice che vi fa riferimento, il riferimento viene risolto nell'elemento stesso. Ad esempio, se un elemento Private nasconde un elemento della classe base, il codice che non dispone dell'autorizzazione per accedere all'elemento Private accede invece all'elemento della classe base.

    • Se si nasconde un elemento, è comunque possibile accedervi tramite un oggetto dichiarato con il tipo della classe di base. È anche possibile accedervi tramite MyBase.

Il modificatore Shadows può essere usato nei contesti seguenti:

Vedi anche