TryCast operátor (Visual Basic)
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 Nothing
kell tesztelnie.
A kulcsszót TryCast
ugyanúgy használja, mint a CType függvényt é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, TryCast
semmit 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 függvény | 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 TryCast
mó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
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: