Konversi Tipe pada Visual Basic dapat dilakukan secara Implicit maupun
Explicit, konversi secara Implicit dilakukan tanpa menggunakan fungsi bantu
casting tertentu seperti Cbool,
Cbyte, Cchar, Cdate, Cdec, CDbl, Cint, CLng, Cobj,
Cshort, CSng, CStr.
Contoh :
Module Test
End Module |
Sedangkan secara Explicit dilakukan dengan menggunakan fungsi bantu
casting.
Module Test
|
End Module
Catatan :
Pada konversi secara Implicit, setting Option Strict akan
mempengaruhi apakah konversi dari tipe yang lebih lebar ke tipe yang lebih
sempit (Misalnya dari Integer 32 bit ke Short 16 bit) diperbolehkan oleh
kompiler atau tidak.
Contoh berikut akan melakukan konversi dari Integer 32 bit ke Short
16 bit.
Option Strict On
Option Explicit On
Imports System
Public Module ModKali
Sub Main()
Dim i, j As Byte
Dim a As Integer = 40000
Dim b As Short
b = a
Console.WriteLine(b)
End Sub
End Module
Yang kalau dikompilasi akan menghasilkan error sebagai berikut
Microsoft (R) Visual
Basic .NET Compiler version 7.10.3052.4
for Microsoft (R) .NET
Framework version 1.1.4322.573
Copyright (C)
Microsoft Corporation 1987-2002. All rights reserved.
D:\BELAJA~1\kali.vb(10)
: error BC30512: Option Strict On disallows implicit conversions from
'Integer' to 'Short'.
b = a
~
Hal tersebut dapat diperbaiki dengan menggunakan fungsi ToInt16 yang
terdapat pada System.Convert yang artinya konversi memang dikehendaki oleh
programmer
Contoh :
Option Strict On
Option Explicit On
Imports System
Public Module ModKali
Sub Main()
Dim i, j As Byte
Dim a As Integer = 40000
Dim b As Short
b =
System.Convert.ToInt16(a)
Console.WriteLine(b)
End Sub
End Module
Tetapi karena nilai 40000 tidak dapat ditampung oleh type data short,
maka akan menghasilkan error pada saat runtime : System.OverflowException.
|
Konversi data secara Explicit dapat juga memanfaatkan fungsi bantu
casting yang terdapat pada Objek System Convert sebagai berikut :
Function
|
Purpose
|
ToBoolean
|
Converts a
value to a Boolean (True or False).
|
ToByte
|
Converts a
value to an 8-bit Byte in the range 0 to 255.
|
ToChar
|
Converts a
value to a 2-byte Unicode character.
|
ToDateTime
|
Converts a
value to a DateTime object.
|
ToDecimal
|
Converts a
value to a 12-byte Decimal.
|
ToDouble
|
Converts a
value to an 8-byte Double.
|
ToInt16
|
Converts a
value to a 2-byte Short.
|
ToInt32
|
Converts a
value to a 4-byte Integer.
|
ToInt64
|
Converts a
value to an 8-byte Integer.
|
ToSByte
|
Converts a
value to an 8-bit signed value in the range –128 to 127.
|
ToSingle
|
Converts a
value to a 4-byte Single.
|
ToString
|
Converts a
value to its String representation.
|
ToUInt16
|
Converts a
value to a 2-byte unsigned Short in the range 0 to 65,535.
|
ToUInt32
|
Converts a
value to a 4-byte unsigned Integer in the range 0 to 4,294,967,295.
|
ToUInt64
|
Converts a
value to an 8-byte unsigned long Integer in the range 0 to
18,446,744,073,709,551,615.
|
Catatan :
Berdasarkan uji coba yang dilakukan fungsi bantu konversi tipe
seperti Cint, Cdate, CSng,CDbl, Cdec dan kadang-kadang fungsi bantu konversi
memiliki unjuk kerja yang lebih baik seperti yang ditunjukan oleh tabel
berikut ini adalah hasil konversi dengan Integer.Pars, Convert.ToInt32,
dibandingkan dengan CInt
|