Risoluzione dei problemi relativi alle eccezioni: System.InvalidCastException

Un'eccezione InvalidCastException viene generata quando si verifica un errore durante una conversione esplicita di un riferimento da un tipo all'altro. Queste conversioni possono modificare il tipo del riferimento, ma non cambiano mai il tipo o il valore della destinazione della conversione. Una causa frequente di questa eccezione è il cast di oggetti da un tipo all'altro.

Suggerimenti associati

  • Confrontare i tipi di origine con i tipi di destinazione per assicurarsi che la conversione sia valida.
    Per informazioni sulle conversioni supportate dal sistema, vedere Convert.

Osservazioni

Affinché una conversione esplicita di un riferimento abbia esito positivo, è necessario che il valore di origine sia Null (Nothing in Visual Basic) oppure che il tipo di oggetto al quale viene fatto riferimento nell'argomento di origine sia convertibile nel tipo di destinazione tramite una conversione implicita del riferimento.

Quando un'applicazione Visual Basic 6.0 con una chiamata a un evento personalizzato in un controllo utente viene aggiornata a una versione più recente di Visual Basic ed eseguita, è possibile che questa eccezione venga restituita insieme al messaggio informativo "Cast specificato non valido". Per risolvere questo errore, individuare la seguente riga di codice in Form1:

Call UserControl11_MyCustomEvent(UserControl11, New UserControl1.MyCustomEventEventArgs(5))

Sostituire tale riga con:

Call UserControl11_MyCustomEvent(UserControl11(0), New UserControl1.MyCustomEventEventArgs(5))

Vedere anche

Attività

Procedura: utilizzare Informazioni sulle eccezioni

How to: Convert an Object to Another Type in Visual Basic

Procedura: implementare conversioni tra struct definite dall'utente (Guida per programmatori C#)

Riferimenti

InvalidCastException

Concetti

Conversione delle stringhe in tipi di dati di .NET Framework