Sdílet prostřednictvím


Operátor TryCast (Visual Basic)

Uvádí typ operace převodu, který není vyvoláním výjimky.

Poznámky

Pokud se nezdaří pokus o převod, CType a DirectCast vyvoláním i InvalidCastException chyba.To může nepříznivě ovlivnit výkon aplikace.TryCastVrátí Nic (Visual Basic)tak, aby namísto zpracování možné výjimky nutné pouze zkušební vrácených výsledků proti Nothing.

Použití TryCast stejným způsobem pomocí klíčového slova Funkce CType (Visual Basic) a Operátor DirectCast (Visual Basic) klíčové slovo.Můžete zadat výraz, jako první argument a typ, který chcete převést na jako druhý argument.TryCastpracuje pouze s typy odkazů, jako je například třídy a rozhraní.To vyžaduje vztahu dědičnosti nebo provádění mezi dvěma typy.To znamená, že jeden typ musí dědit z nebo provádět ostatní.

Chyby a chyby

TryCastzjistí, že neexistuje žádný vztah dědičnosti nebo provádění, vygeneruje se chyba kompilátoru.Ale nedostatek chyba kompilátoru nezaručuje úspěšné převodu.Požadovaný převod je zúžení, pravděpodobně nezdaří v době spuštění.V tomto případě TryCast vrátí Nic (Visual Basic).

Klíčová slova pro převod

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

Klíčové slovo

Typy dat

Argument vztah

Chyba spuštění

Funkce CType (Visual Basic)

Všechny datové typy

Rozšíření nebo zúžení převodu musí být definována mezi dvěma datovými typy

VyvoláInvalidCastException

Operátor DirectCast (Visual Basic)

Všechny datové typy

Jeden typ musí dědit z nebo provádět jiný typ

VyvoláInvalidCastException

TryCast

Pouze typy odkazů

Jeden typ musí dědit z nebo provádět jiný typ

VrátíNic (Visual Basic)

Příklad

Následující příklad ukazuje použití 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é

Koncepty

Rozšiřování a zužující převody (Visual Basic)

Implicitní a explicitní převody (Visual Basic)