Fitur VB9 (Implicitly typed local variabel)

Halo, selamat datang di posting pertama saya mengenai fitur VB9, pada artikel ini saya akan membahas “Implictly typed local variabel” pada VB9.

Untuk mendeklarasikan variabel pada VB8 (.NET 2.0) anda dapat menuliskan kode sebagai berikut:

image 

Ketika saya menuliskan deklarasi variable diatas, saya merasa deklarasi tersebut terlalu panjang, karena ketika kita memberikan nilai 999 atau “Erick” maka compiler seharusnya bisa tahu tipe data yang dimasukan kedalam variabel tersebut. Bagaimana jika ditulis seperti ini saja

image

lebih praktis bukan? namun pada VB8 jika ada mendeklarasikan variable seperti diatas maka compiler secara otomatis akan merubah tipenya menjadi tipe “object” / mengganggapnya sebagai “late binding” (option strict = off).

image

Ini akan sangat tidak efektif karena compiler melakukan proses “boxing” dan “unboxing” untuk merubah dari tipe string ke object, object ke string.

Pada VB9 diperkenalkan satu option baru yaitu “Option infer”, dengan mengaktifkan option ini menjadi “on” maka compiler secara otomatis dapat menebak tipe data apa yang dimiliki oleh variabel dari nilai yang kita berikan di sisi kanan. Secara default VB9 mengaktifkan pilihan option infer “on” atau anda juga dapat menuliskannya secara eksplisit pada kode.

image

image

Jika anda cek lagi tipe data dari variable yang ada di sisi kiri, maka tipe datanya akan secara otomatis menyesuaikan dengan nilai yang anda berikan disisi kanan.

image

image

Jika anda tidak mengeset option infer menjadi off maka otomatis tipe akan diubah menjadi object (late binding) seperti pada VB8.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s