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.
Konversi implisit tidak memerlukan sintaks khusus dalam kode sumber. Dalam contoh berikut, Visual Basic secara implisit mengonversi nilai k
menjadi nilai floating-point presisi tunggal sebelum menetapkannya ke q
.
Dim k As Integer
Dim q As Double
' Integer widens to Double, so you can do this with Option Strict On.
k = 432
q = k
Konversi eksplisit menggunakan kata kunci konversi tipe. Visual Basic menyediakan beberapa kata kunci tersebut, yang memaksa ekspresi dalam tanda kurung ke jenis data yang diinginkan. Kata kunci ini bertindak seperti fungsi, tetapi pengkompilasi menghasilkan kode sebaris, sehingga eksekusi sedikit lebih cepat daripada dengan panggilan fungsi.
Dalam ekstensi contoh sebelumnya berikut, CInt
kata kunci mengonversi nilai kembali ke bilangan q
bulat sebelum menetapkannya ke k
.
' q had been assigned the value 432 from k.
q = Math.Sqrt(q)
k = CInt(q)
' k now has the value 21 (rounded square root of 432).
Kata Kunci Konversi
Tabel berikut ini memperlihatkan kata kunci konversi yang tersedia.
Ketik kata kunci konversi | Mengonversi ekspresi ke tipe data | Jenis ekspresi data yang diizinkan untuk dikonversi |
---|---|---|
CBool |
Tipe Data Boolean | Jenis numerik apa pun (termasuk Byte , , SByte dan jenis enumerasi), String , Object |
CByte |
Tipe Data Byte | Jenis numerik apa pun (termasuk SByte dan jenis enumerasi), Boolean , , String Object |
CChar |
Tipe Data Karakter |
String , Object |
CDate |
Tipe Data Tanggal |
String , Object |
CDbl |
Jenis Data Ganda | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CDec |
Tipe Data Desimal | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CInt |
Tipe Data Integer | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CLng |
Tipe Data Panjang | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CObj |
Tipe Data Objek | Tipe apa saja |
CSByte |
Tipe Data SByte | Jenis numerik apa pun (termasuk Byte dan jenis enumerasi), Boolean , , String Object |
CShort |
Tipe Data Pendek | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CSng |
Jenis Data Tunggal | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CStr |
Tipe Data String | Setiap jenis numerik (termasuk Byte , SByte , dan jenis enumerasi), Boolean , Char , Char array, Date , Object |
CType |
Jenis yang ditentukan setelah koma (, ) |
Saat mengonversi ke jenis data dasar (termasuk array jenis dasar), jenis yang sama seperti yang diizinkan untuk kata kunci konversi yang sesuai Saat mengonversi ke jenis data komposit, antarmuka yang akan diterapkan dan kelas yang diwarisinya dari Saat mengonversi ke kelas atau struktur tempat Anda telah kelebihan beban CType , kelas atau struktur tersebut |
CUInt |
Tipe Data UInteger | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CULng |
Tipe Data ULong | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
CUShort |
Tipe Data UShort | Setiap jenis numerik (termasuk Byte , , SByte dan jenis enumerasi), Boolean , , String Object |
Fungsi CType
Fungsi CType beroperasi pada dua argumen. Yang pertama adalah ekspresi yang akan dikonversi, dan yang kedua adalah jenis data tujuan atau kelas objek. Perhatikan bahwa argumen pertama harus berupa ekspresi, bukan jenis.
CType
adalah fungsi sebaris, yang berarti kode yang dikompilasi membuat konversi, sering kali tanpa menghasilkan panggilan fungsi. Ini meningkatkan performa.
Untuk perbandingan CType
dengan kata kunci konversi jenis lainnya, lihat Operator DirectCast dan Operator TryCast.
Jenis Dasar
Contoh berikut menunjukkan penggunaan CType
.
k = CType(q, Integer)
' The following statement coerces w to the specific object class Label.
f = CType(w, Label)
Jenis Komposit
Anda dapat menggunakan CType
untuk mengonversi nilai ke jenis data komposit serta ke jenis dasar. Anda juga dapat menggunakannya untuk memaksa kelas objek ke jenis salah satu antarmukanya, seperti dalam contoh berikut.
' Assume class cZone implements interface iZone.
Dim h As Object
' The first argument to CType must be an expression, not a type.
Dim cZ As cZone
' The following statement coerces a cZone object to its interface iZone.
h = CType(cZ, iZone)
Jenis Array
CType
juga dapat mengonversi jenis data array, seperti dalam contoh berikut.
Dim v() As classV
Dim obArray() As Object
' Assume some object array has been assigned to obArray.
' Check for run-time type compatibility.
If TypeOf obArray Is classV()
' obArray can be converted to classV.
v = CType(obArray, classV())
End If
Untuk informasi selengkapnya dan contohnya, lihat Konversi Array.
Jenis Yang Menentukan CType
Anda dapat menentukan CType
pada kelas atau struktur yang telah Anda tentukan. Ini memungkinkan Anda untuk mengonversi nilai ke dan dari jenis kelas atau struktur Anda. Untuk informasi selengkapnya dan contohnya, lihat Cara: Menentukan Operator Konversi.
Nota
Nilai yang digunakan dengan kata kunci konversi harus valid untuk jenis data tujuan, atau terjadi kesalahan. Misalnya, jika Anda mencoba mengonversi Long
ke Integer
, nilai Long
harus berada dalam rentang yang valid untuk jenis data Integer
.
Perhatian
Menentukan CType
untuk mengonversi dari satu jenis kelas ke jenis lain gagal pada waktu proses jika jenis sumber tidak berasal dari jenis tujuan. Kegagalan seperti itu memunculkan pengecualian InvalidCastException.
Namun, jika salah satu jenis adalah struktur atau kelas yang telah Anda tentukan, dan jika Anda telah menentukan CType
struktur atau kelas tersebut, konversi dapat berhasil jika memenuhi persyaratan Anda CType
. Lihat Cara: Menentukan Operator Konversi.
Melakukan konversi eksplisit juga dikenal sebagai transmisi ekspresi ke jenis data atau kelas objek tertentu.
Lihat juga
- Konversi Jenis di Visual Basic
- Konversi Antara String dan Jenis Lainnya
- Cara: Mengonversi Objek ke Tipe Lain di Visual Basic
- Struktur
- Jenis Data
- Fungsi Konversi Jenis
- Jenis Data Pemecahan Masalah