Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memperkenalkan operasi konversi jenis yang tidak melemparkan pengecualian.
Komentar
Jika konversi yang dicoba gagal, CType dan DirectCast keduanya melemparkan InvalidCastException kesalahan. Ini dapat berdampak buruk pada performa aplikasi Anda.
TryCast mengembalikan Tidak Ada, sehingga alih-alih harus menangani kemungkinan pengecualian, Anda hanya perlu menguji hasil yang dikembalikan terhadap Nothing.
Anda menggunakan TryCast kata kunci dengan cara yang sama seperti Anda menggunakan Operator CType dan kata kunci Operator DirectCast . Anda memberikan ekspresi sebagai argumen pertama dan jenis untuk mengonversinya menjadi sebagai argumen kedua.
TryCast hanya beroperasi pada jenis referensi, seperti kelas dan antarmuka. Ini membutuhkan pewarisan atau hubungan implementasi antara dua jenis. Ini berarti bahwa satu jenis harus mewarisi dari atau mengimplementasikan yang lain.
Kesalahan dan Kegagalan
TryCast menghasilkan kesalahan kompilator jika mendeteksi bahwa tidak ada pewarisan atau hubungan implementasi. Tetapi kurangnya kesalahan kompilator tidak menjamin konversi yang berhasil. Jika konversi yang diinginkan menyempit, itu bisa gagal pada waktu proses. Jika ini terjadi, TryCast mengembalikan Tidak Ada.
Kata Kunci Konversi
Perbandingan kata kunci konversi jenis adalah sebagai berikut.
| Kata kunci | Jenis data | Hubungan argumen | Kegagalan run-time |
|---|---|---|---|
| CType Operator | Jenis data apa pun | Melebarkan atau mempersempit konversi harus didefinisikan di antara dua jenis data | Melempar InvalidCastException |
| DirectCast Operator | Jenis data apa pun | Satu jenis harus mewarisi dari atau mengimplementasikan jenis lainnya | Melempar InvalidCastException |
TryCast |
Jenis referensi saja | Satu jenis harus mewarisi dari atau mengimplementasikan jenis lainnya | Tidak Mengembalikan Apa-apa |
Contoh
Contoh berikut menunjukkan cara menggunakan 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