Override virtual interni e friend sottoponibile a override da overload

NotaNota

In questo argomento viene notificata l'esistenza di un problema di sicurezza che si verifica quando si dichiara un metodo sia come virtual che come internal (OverloadsOverridableFriend in Visual Basic).Questo problema si verifica solo in .NET Framework versioni 1.0 e 1.1 e non nella versione 2.0.

In .NET Framework versioni 1.0 e 1.1 è necessario prestare attenzione a una sfumatura dell'accessibilità al sistema di tipi quando si conferma l'indisponibilità del codice per altri assembly. Un metodo dichiarato come virtual e internal (Overloads Overridable Friend in Visual Basic) può eseguire l'override della voce vtable della classe padre ed essere utilizzato solo dallo stesso assembly in quanto è interno. L'accessibilità per l'override è tuttavia determinata dalla parola chiave virtual che può essere sottoposta a override da un altro assembly se il codice dispone dell'accesso alla stessa classe. Se la possibilità di override presenta problemi, utilizzare la sicurezza dichiarativa per correggerli o rimuovere la parola chiave virtual se non è strettamente necessaria.

Anche se un compilatore di linguaggio impedisce questi override tramite un errore di compilazione, è possibile eseguire l'override con codice scritto con altri compilatori.

Vedere anche

Concetti

Linee guida per la generazione di codice sicuro

Problemi di sicurezza per parole chiave friend virtual interne e sottoponibili a override da overload