TryCast – operátor (Visual Basic)

Zavádí operaci převodu typu, která nevy vyvolá výjimku.

Poznámky

Pokud se pokus o převod nezdaří a CType DirectCast oba vyvolá InvalidCastException chybu. To může nepříznivě ovlivnit výkon vaší aplikace. TryCast vrátí Nothing, takže místo zpracování možné výjimky budete potřebovat pouze test vráceného výsledku proti Nothing .

Klíčové slovo TryCast se používá stejným způsobem jako funkce CType a klíčové slovo operátoru DirectCast. Jako první argument zadáte výraz a jako druhý argument převedete výraz na typ . TryCast funguje pouze u odkazových typů, jako jsou třídy a rozhraní. Vyžaduje vztah dědičnosti nebo implementace mezi těmito dvěma typy. To znamená, že jeden typ musí dědit z druhého typu nebo ho implementovat.

Chyby a selhání

TryCast generuje chybu kompilátoru, pokud zjistí, že neexistuje vztah dědičnosti nebo implementace. Absence chyby kompilátoru ale nezaručuje úspěšný převod. Pokud je požadovaný převod zužující, může selhat za běhu. Pokud k tomu dojde, TryCast vrátí Nothing.

Klíčová slova převodu

Porovnání klíčových slov převodu typu je následující.

Klíčové slovo Typy dat Vztah argumentu Selhání za běhu
CType – funkce Všechny datové typy Mezi těmito dvěma datovými typy musí být definován rozšiřující nebo zužující převod. Vyvolá InvalidCastException
DirectCast – operátor Všechny datové typy Jeden typ musí dědit z druhého typu nebo ho implementovat. Vyvolá InvalidCastException
TryCast Pouze odkazové typy Jeden typ musí dědit z druhého typu nebo ho implementovat. Vrátí Nothing

Příklad

Následující příklad ukazuje, jak použít 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

Viz také