Operatore TryCast (Visual Basic)

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 InvalidCastExceptionCiò può influire negativamente sulle 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 (Visual Basic) e della parola chiave Operatore DirectCast (Visual Basic).Viene specificata un'espressione come primo argomento e un tipo per la relativa conversione come secondo argomento.TryCast opera solo sui tipi di riferimento, quali 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 (Visual Basic)

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

Operatore DirectCast (Visual Basic)

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 (Visual Basic)

Conversioni implicite ed esplicite (Visual Basic)