Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Introduce un'operazione di conversione dei tipi che non genera un'eccezione.
Osservazioni:
Se un tentativo di conversione ha esito negativo CType ed DirectCast entrambi generano un InvalidCastException errore. Ciò può influire negativamente sulle prestazioni dell'applicazione.
TryCast restituisce Nothing, in modo che invece di dover gestire una possibile eccezione, è necessario testare solo il risultato restituito su Nothing.
Si usa la TryCast parola chiave allo stesso modo in cui si usano l'operatore CType e la parola chiave DirectCast Operator . Specificare un'espressione come primo argomento e un tipo in cui convertirlo come secondo argomento.
TryCast opera solo su tipi di riferimento, ad esempio classi e interfacce. Richiede una relazione di ereditarietà o implementazione tra i due tipi. Ciò significa che un tipo deve ereditare o implementare l'altro.
Errori e errori
TryCast genera un errore del compilatore se rileva che non esiste alcuna relazione di ereditarietà o implementazione. Tuttavia, la mancanza di un errore del compilatore non garantisce una conversione corretta. Se la conversione desiderata è ridotta, potrebbe non riuscire in fase di esecuzione. In questo caso, restituisce TryCastNothing.
Parole chiave di conversione
Di seguito è riportato un confronto tra le parole chiave di conversione dei tipi.
| Parola chiave | Tipi di dati | Relazione tra argomenti | Errore di runtime |
|---|---|---|---|
| Operatore CType | Qualsiasi tipo di dati | È necessario definire una conversione verso un tipo di dati più esteso o verso un tipo di dati più piccolo | Getta InvalidCastException |
| Operatore DirectCast | Qualsiasi tipo di dati | Un tipo deve ereditare o implementare l'altro tipo | Getta InvalidCastException |
TryCast |
Solo tipi di riferimento | Un tipo deve ereditare o implementare l'altro tipo | Restituisce Nothing |
Esempio
Nell'esempio seguente viene illustrato come usare 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