TryCast-Operator (Visual Basic)
Leitet eine Typkonvertierungsoperation ein, die keine Ausnahme auslöst.
Hinweise
Wenn eine Konvertierungsversuch fehlschlägt, lösen sowohl CType als auch DirectCast einen InvalidCastException-Fehler aus.Dies kann die Leistung Ihrer Anwendung beeinträchtigen.TryCast gibt Nothing (Visual Basic) zurück, sodass Sie keine Ausnahme behandeln, sondern nur das zurückgegebene Ergebnis mit Nothing testen müssen.
Sie verwenden das TryCast-Schlüsselwort auf die gleiche Weise wie die CType-Funktion (Visual Basic) und das DirectCast-Operator (Visual Basic)-Schlüsselwort.Als erstes Argument ist ein Ausdruck anzugeben und als zweites Argument ein Typ, in den dieser Ausdruck konvertiert werden soll.TryCast kann nur für Verweistypen, z. B. Klassen und Schnittstellen, verwendet werden.Es erfordert eine Vererbungs- oder Implementierungsbeziehung zwischen den beiden Typen.Dies bedeutet, dass ein Typ von dem anderen erben bzw. ein Typ den anderen implementieren muss.
Fehler
TryCast generiert einen Compilerfehler, wenn festgestellt wird, dass keine Vererbungs- oder Implementierungsbeziehung vorhanden ist.Das Ausbleiben eines Compilerfehlers ist jedoch keine Garantie für eine erfolgreiche Konvertierung.Wenn die gewünschte Konvertierung eingrenzend ist, kann sie zur Laufzeit fehlschlagen.In diesem Fall gibt TryCastNothing (Visual Basic) zurück.
Konvertierungsschlüsselwörter
Im Folgenden werden die Typkonvertierungsschlüsselwörter miteinander verglichen.
Schlüsselwort |
Datentypen |
Argumentbeziehung |
Laufzeitfehler |
Beliebige Datentypen |
Zwischen den beiden Datentypen muss eine erweiternde oder eingrenzende Konvertierung definiert werden. |
Löst InvalidCastException aus. |
|
Beliebige Datentypen |
Ein Datentyp muss von dem anderen Datentyp erben oder den anderen Datentyp implementieren. |
Löst InvalidCastException aus. |
|
TryCast |
Nur Verweise auf Typen |
Ein Datentyp muss von dem anderen Datentyp erben oder den anderen Datentyp implementieren. |
Gibt Nothing (Visual Basic) zurück. |
Beispiel
Das folgende Beispiel veranschaulicht die Verwendung von 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