Shadows

Aggiornamento: novembre 2007

Specifica che un elemento di programmazione dichiarato ridichiara e nasconde un elemento omonimo o un insieme di elementi di overload di una classe base.

Note

Lo scopo principale dello shadowing, un meccanismo che consente di nascondere in base al nome, è quello di conservare la definizione dei membri della classe. È possibile che la classe base sia sottoposta a una modifica che crea un elemento con lo stesso nome di quello già definito. In tal caso, il modificatore Shadows impone che i riferimenti attraverso la classe vengano risolti nel membro definito, anziché nel nuovo elemento della classe base.

Anche se lo shadowing e l'override ridefiniscono entrambi un elemento ereditato, tra i due approcci esistono differenze notevoli. Per ulteriori informazioni, vedere Shadowing in Visual Basic.

Regole

  • Contesto della dichiarazione. È possibile utilizzare Shadows solo a livello di classe. In altri termini, il contesto della dichiarazione per un elemento Shadows deve essere una classe e non un file di origine, uno spazio dei nomi, un'interfaccia, un modulo, una struttura o una routine.

    In una singola istruzione di dichiarazione è possibile dichiarare un unico elemento di shadowing.

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

  • Tipi degli elementi. È 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, non è necessario che i parametri e il tipo restituito corrispondano a quelli della proprietà o della routine della classe base.

  • Accesso. In genere, l'elemento nascosto nella classe base non è disponibile dall'interno della classe derivata che lo nasconde. Si applicano tuttavia le considerazioni riportate di seguito.

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

    • Se si nasconde un elemento, è possibile comunque accedervi attraverso un oggetto dichiarato con il tipo della classe base. È inoltre possibile accedere a tale elemento mediante MyBase.

Il modificatore Shadows può essere utilizzato nei seguenti contesti:

Istruzione Class

Istruzione Const

Istruzione Declare

Istruzione Delegate

Istruzione Dim

Istruzione Enum

Istruzione Event

Istruzione Function

Istruzione Interface

Istruzione Property

Istruzione Structure

Istruzione Sub

Vedere anche

Concetti

Shadowing in Visual Basic

Riferimenti

Shared (Visual Basic)

Static (Visual Basic)

Private (Visual Basic)

MyBase

MustOverride

NotOverridable

Overloads

Overridable

Overrides