Local Type Inference di VB 9.0

Posted at : Oct/09/2007
4331 Views

Local Type Inference merupakan fitur baru yang terdapat di VB 9.0. Fitur baru ini memungkinkan programmer untuk mendeklarasikan variabel tanpa harus mendefinisikan tipe datanya. Lho bukannya fitur ini sudah ada semenjak VB versi non .NET?? Di VB 6.0 kita juga bisa deklarasikan variabel tanpa harus secara eksplisit mendefinisikan tipe datanya. Namun di VB 9.0 ini ada perbedaan dengan teknik yang biasa dilakukan di VB 6.0.

Lalu apa perbedaanya? Kalau di VB 6.0 kita deklarasikan variabel tanpa mendefinisikan tipe datanya maka variabel tersebut memiliki tipe data Variant. Tipe data ini sama dengan tipe data Object di VB.NET. Tipe data variant dapat menampung jenis tipe data apa saja, begitu juga dengan tipe data Object. Akan tetapi kalau Local Type Inference ini dilakukan di VB 9.0 maka variabel tersebut tidak menggunakan tipe data Object yang tidak strongly typed.

Lalu bagaimana hal tersebut dapat terjadi? Ketika code yang mengandung Local Type Inference itu di compile, maka compiler akan mengecek value yang diberikan kepada variabel tersebut. Compiler akan mengetahui sendiri tipe data yang digunakan untuk variabel tersebut. Dan hasilnya strongly typed. Hal tersebut dapat kita buktikan dengan membuka IL yang digenerate oleh compiler tersebut. Kita dapat melihatnya dengan ILDASM.exe.

Ok...misalkan saya punya beberapa variabel local yang menggunakan fitur Local Type Inference seperti dibawah ini :

   1:  Imports System.Windows.Forms
   2:   
   3:  Module NewInVB90
   4:      Private Sub MyLocalTypeInference()
   5:          Dim i = 10
   6:          Dim s = "VB 9.0"
   7:          Dim d = 2.56
   8:          Dim c = "R"c
   9:          Dim b = True
  10:          Dim t = #10/9/2007#
  11:   
  12:          MessageBox.Show(i.GetType.ToString, "Local Type Inference")
  13:          MessageBox.Show(s.GetType.ToString, "Local Type Inference")
  14:          MessageBox.Show(d.GetType.ToString, "Local Type Inference")
  15:          MessageBox.Show(c.GetType.ToString, "Local Type Inference")
  16:          MessageBox.Show(b.GetType.ToString, "Local Type Inference")
  17:          MessageBox.Show(t.GetType.ToString, "Local Type Inference")
  18:      End Sub
  19:   
  20:      Sub Main()
  21:          MyLocalTypeInference()
  22:      End Sub
  23:  End Module

Hasil messagebox yang pertama:

Hasil messagebox yang kedua :

dan untuk hasil messagebox lainnya yaitu bersesuaian dengan value yang diberikan. Sekarang kita buka IL code nya dengan ILDASM.exe via .net fx command prompt.

Sekarang kita dapat lihat bahwa di IL code semua Local Type Inference akan dirubah tipe datanya sesuai dengan tipe data berdasarkan value yang diberikan kepada variabel tsb. Jadi hasilnya bukan Object data type, but it's strongly typed :)


ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Co-Founder & IT Trainer at Native Enterprise | Microsoft Azure Data Scientist | IBM RAG & Agentic AI | IBM Data Science & Data Analyst | Python Certified (PCEP, PCAP) | MOS, MTA, Xamarin Certified, ex MCT | ex MVP

CERTIFICATIONS

Microsoft Certified Associate
IBM RAG and Agentic AI Professional
IBM Data Science Professional IBM Data Analyst Professional
PCAP Associate Python Programmer Certified PCEP Entry Level Python Programmer Certified
Xamarin Certified
MOS 2007
MCPD MCTS
MCAD.NET

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  X Twitter Facebook  Instagram  LinkedIn

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2026   Rully Yulian MF   All rights reserved.