Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Olyan típuskonvertálási műveletet vezet be, amely nem okoz kivételt.
Megjegyzések
Ha egy konvertálási kísérlet meghiúsul, CType és DirectCast mindkettő hibát jelez InvalidCastException . Ez hátrányosan befolyásolhatja az alkalmazás teljesítményét.
TryCast
Semmit nem ad vissza, így ahelyett, hogy egy lehetséges kivételt kellene kezelnie, csak a visszaadott eredményt Nothingkell tesztelnie.
A kulcsszót TryCast ugyanúgy használja, mint a CType operátort és a DirectCast Operátor kulcsszót . Első argumentumként egy kifejezést és egy második argumentummá alakítandó típust kell megadnia.
TryCast csak referenciatípusokon, például osztályokon és interfészeken működik. A két típus között öröklési vagy megvalósítási kapcsolat szükséges. Ez azt jelenti, hogy az egyik típusnak a másiktól kell örökölnie vagy implementálnia.
Hibák és hibák
TryCast fordítási hibát generál, ha azt észleli, hogy nincs öröklési vagy megvalósítási kapcsolat. A fordítóhibák hiánya azonban nem garantálja a sikeres átalakítást. Ha a kívánt átalakítás szűkül, futásidőben meghiúsulhat. Ha ez történik, TryCastsemmit sem ad vissza.
Konverziós kulcsszavak
A típuskonvertálási kulcsszavak összehasonlítása a következő.
| Kulcsszó | Adattípusok | Argumentumkapcsolat | Futásidejű hiba |
|---|---|---|---|
| CType operátor | Bármilyen adattípus | A két adattípus közötti szélesítést vagy szűkítést kell definiálni | Dob InvalidCastException |
| DirectCast operátor | Bármilyen adattípus | Az egyik típusnak örökölnie vagy implementálnia kell a másik típust | Dob InvalidCastException |
TryCast |
Csak referenciatípusok | Az egyik típusnak örökölnie vagy implementálnia kell a másik típust | Semmit nem ad vissza |
példa
Az alábbi példa a használat TryCastmódját mutatja be.
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