Share via


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

CType-Funktion

Beliebige Datentypen

Zwischen den beiden Datentypen muss eine erweiternde oder eingrenzende Konvertierung definiert werden.

Löst InvalidCastException aus.

DirectCast

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

Siehe auch

Konzepte

Erweiternde und eingrenzende Konvertierungen

Implizite und explizite Konvertierungen