Share via


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 TryCast Nothing (Visual Basic) zurück.

Konvertierungsschlüsselwörter

Im Folgenden werden die Typkonvertierungsschlüsselwörter miteinander verglichen.

Schlüsselwort

Datentypen

Argumentbeziehung

Laufzeitfehler

CType-Funktion (Visual Basic)

Beliebige Datentypen

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

Löst InvalidCastException aus.

DirectCast-Operator (Visual Basic)

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

Implizite und explizite Konvertierungen (Visual Basic)