Condividi tramite


TryCast

Aggiornamento: novembre 2007

Introduce un'operazione di conversione dei tipi che non genera un'eccezione.

Note

Se non riesce un tentativo di conversione, CType e DirectCast generano entrambi un errore InvalidCastException che può influenzare negativamente le prestazioni dell'applicazione. TryCast restituisce Nothing (Visual Basic). Pertanto, anziché gestire una possibile eccezione, sarà sufficiente testare il risultato restituito rispetto a Nothing.

L'uso della parola chiave TryCast è analogo a quello della funzione Funzione CType e della parola chiave DirectCast. Specificare un'espressione come primo argomento e un tipo in cui eseguire la conversione come secondo argomento. TryCast agisce solo su tipi di riferimento come classi e interfacce e richiede una relazione di ereditarietà o di implementazione tra i due tipi. Ciò significa che un tipo deve ereditare dall'altro tipo o implementarlo.

Condizioni di errore

Se non viene rilevata alcuna relazione di ereditarietà o implementazione, TryCast genera un errore del compilatore. L'assenza di errori del compilatore non garantisce tuttavia la riuscita della conversione. Se la conversione desiderata è verso un tipo di dati più piccolo, è possibile che l'operazione non riesca in fase di esecuzione. In tal caso, TryCast restituisce Nothing (Visual Basic).

Parole chiave di conversione

Di seguito è riportato un confronto tra le parole chiave di conversione dei tipi.

Parola chiave

Tipi di dati

Relazione degli argomenti

Errore di runtime

Funzione CType

Qualsiasi tipo di dati

La conversione verso un tipo di dati più grande o più piccolo deve essere definita tra i due tipi di dati

Genera InvalidCastException

DirectCast

Qualsiasi tipo di dati

Uno dei tipi deve ereditare dall'altro o implementarlo

Genera InvalidCastException

TryCast

Solo tipi di riferimento

Uno dei tipi deve ereditare dall'altro o implementarlo

Restituisce Nothing (Visual Basic)

Esempio

Nell'esempio riportato di seguito viene illustrato l'utilizzo di TryCast.

Function PrintTypeCode(ByVal obj As Object) As String
    Dim objAsConvertible As IConvertible = TryCast(obj, IConvertible)
    If objAsConvertible Is Nothing Then
        Return obj.ToString() & " does not implement IConvertible"
    Else
        Return "Type code is " & objAsConvertible.GetTypeCode()
    End If
End Function

Vedere anche

Concetti

Conversioni di ampliamento e restrizione

Conversioni implicite ed esplicite