TryCast
Aktualisiert: November 2007
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 und das DirectCast-Schlüsselwort. Sie geben einen Ausdruck als erstes Argument und als zweites Argument einen Datentyp an, in den das erste Argument konvertiert werden soll. Mit TryCast können nur Verweistypen wie Klassen und Schnittstellen bearbeitet 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