L'espressione di tipo '<nometipo1>' non può essere di tipo '<nometipo2>'

Aggiornamento: novembre 2007

Expression of type '<typename1>' can never be of type '<typename2>'

Un'espressione TypeOf...Is consente di eseguire il test di una variabile di riferimento a un oggetto in un tipo di dati che non può essere contenuto.

In alcuni casi il compilatore può determinare che un test dell'espressione TypeOf...Is possa avere solo esito negativo, ad esempio se non esiste alcuna relazione di ereditarietà tra le due classi.

Il seguente codice di esempio può generare questo errore.

Dim refVar as System.Windows.Forms.Form

If TypeOf refVar Is System.Array

End If

Poiché le classi Form e Array sono tipi completamente non correlati, il compilatore può determinare che l'espressione TypeOf...Is restituisca False per qualsiasi valore di refVar.

ID errore: BC31430

Per correggere l'errore

  • Eseguire il test della variabile di un tipo di dati realistico oppure rimuovere il test dell'espressione TypeOf...Is completamente.

Vedere anche

Attività

Procedura: determinare a quale tipo fa riferimento una variabile oggetto

Riferimenti

Operatore TypeOf (Visual Basic)