Fungsi CType (Visual Basic)
Mengembalikan hasil konversi ekspresi secara eksplisit ke jenis data, objek, struktur, kelas, atau antarmuka tertentu.
CType(expression, typename)
expression
Ekspresi valid apa pun. Jika nilai expression
berada di luar rentang yang diizinkan oleh typename
, Visual Basic akan menampilkan pengecualian.
typename
Ekspresi apa pun yang legal dalam klausul As
dalam pernyataan Dim
, yaitu, nama jenis data, objek, struktur, kelas, atau antarmuka apa pun.
Tip
Anda juga dapat menggunakan fungsi berikut untuk melakukan konversi jenis:
- Fungsi konversi jenis seperti
CByte
,CDbl
, danCInt
yang melakukan konversi ke jenis data tertentu. Untuk informasi selengkapnya, lihat Fungsi Konversi Jenis. - Operator DirectCast atau Operator TryCast. Operator ini mengharuskan satu jenis mewarisi dari atau mengimplementasikan jenis lainnya. Operator ini dapat memberikan performa yang agak lebih baik daripada
CType
saat mengonversi ke dan dari jenis dataObject
.
CType
dikompilasi sebaris, artinya kode konversi adalah bagian dari kode yang mengevaluasi ekspresi. Dalam beberapa kasus, kode berjalan lebih cepat karena tidak ada prosedur yang dipanggil untuk melakukan konversi.
Jika tidak ada konversi yang ditentukan dari expression
ke typename
(misalnya, dari Integer
ke Date
), Visual Basic menampilkan pesan kesalahan waktu kompilasi.
Jika konversi gagal saat eksekusi, pengecualian yang sesuai akan ditampilkan. Jika konversi penyempitan gagal, OverflowException adalah hasil yang paling umum. Jika konversi tidak ditentukan, InvalidCastException ditampilkan. Misalnya, ini dapat terjadi jika expression
adalah jenis Object
dan jenis run-time-nya tidak memiliki konversi ke typename
.
Jika jenis data expression
atau typename
adalah kelas atau struktur yang telah ditentukan, Anda dapat menentukan CType
pada kelas atau struktur tersebut sebagai operator konversi. Ini membuat CType
bertindak sebagai operator yang kelebihan beban. Jika melakukan ini, Anda dapat mengontrol perilaku konversi ke dan dari kelas atau struktur Anda, termasuk pengecualian yang dapat ditampilkan.
Berikut adalah perbandingan kata kunci konversi jenis.
Kata kunci | Jenis data | Hubungan argumen | Kegagalan run-time |
---|---|---|---|
CType |
Jenis data apa pun | Konversi pelebaran atau penyempitan harus ditentukan antara dua jenis data | Memberi InvalidCastException |
Operator DirectCast | Jenis data apa pun | Satu jenis harus mewarisi dari atau mengimplementasikan jenis lainnya | Memberi InvalidCastException |
TryCast | Jenis referensi saja | Satu jenis harus mewarisi dari atau mengimplementasikan jenis lainnya | Mengembalikan Nothing (Kosong) |
Operator CType
juga dapat kelebihan beban pada kelas atau struktur yang ditentukan di luar kode Anda. Jika kode Anda dikonversi ke atau dari kelas atau struktur seperti itu, pastikan Anda memahami perilaku operator CType
. Untuk informasi lebih lanjut, lihat Prosedur Operator.
Konversi jenis objek dinamis dilakukan oleh konversi dinamis yang ditentukan pengguna yang menggunakan metode TryConvert atau BindConvert. Jika Anda menggunakan objek dinamis, gunakan metode CTypeDynamic untuk mengonversi objek dinamis.
Contoh berikut menggunakan fungsi CType
untuk mengonversi ekspresi ke jenis data Single
.
Dim testNumber As Long = 1000
' The following line of code sets testNewType to 1000.0.
Dim testNewType As Single = CType(testNumber, Single)
Untuk contoh tambahan, lihat Konversi Implisit dan Eksplisit.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: