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