Object Initialization Expressions di VB 9.0

Created at : Oct/09/2007  
1176 Views   0 Comments

Dengan fitur baru ini kita dapat melakukan inisialisasi sebuah object seperti sintaks yang biasa dilakukan terhadap sebuah array. Apabila sebuah class mempunyai sebuah constructor saja, katakanlah default constructor, maka untuk mengakses member property / public variabel yang terdapat di dalam class itu kita harus assign value terhadap sejumlah properti yang akan diberi nilai. Satu line satu assign property. 

Dengan Object initialization Expressions maka hal tersebut diatas tidak harus selalu kita lakukan. Fitur ini memberikan keleluasaan programmer untuk melakukan inisialisasi object dengan langsung memberikan valuenya terhadap properti / public variabel  yang diiginkan dalam satu baris kode, meskipun class tersebut hanya memiliki satu constructor saja.

Untuk menggunkan fitur ini ada beberapa pilihan cara pendeklarasian kode yang dapat kita gunakan. Cara pertama seperti yang biasa dilakukan ketika inisialisasi object, cara kedua kita bisa gunakan juga local type inference, kemudian cara lainnya yaitu dengan menggunakan teknik Anonymous Type.

Pada artikel ini saya akan memberikan contoh ketiga cara diatas dalam menggunakan Object Initialization Expressions. Pertama saya akan buat class, say it MyFaveGuitarist class :)

Public Class MyFaveGuitarist
    Public Name As String
    Public Band As String
    Public Country As String

    Public Sub New()
        '//default constructor
    End Sub

    Public Sub New(ByVal Name As String)
        Me.Name = Name
    End Sub

    Public Sub New(ByVal Name As String, ByVal Country As String)
        Me.Name = Name
        Me.Country = Country
    End Sub
End Class

Class tersebut memiliki tiga public variabel dan tiga constructor. Sekarang kita lihat contoh penggunaan dari fitur Object Initialization Expression dengan melakukan instantiasi terhadap class tersebut dengan beberapa cara :

Imports System.Windows.Forms

Module NewInVB90

    Sub Main()
        Dim myFave1 As MyFaveGuitarist
        myFave1 = New MyFaveGuitarist("Andra Ramadhan") _
        With {.Band = "Andra & The Backbone"}
        myFave1.Country = "Indonesia"
        MessageBox.Show(myFave1.Name & ", " & myFave1.Band & ", " _
                        & myFave1.Country)

        Dim myFave2 As New MyFaveGuitarist() _
        With {.Name = "Paul Gilbert", .Country = "USA"}
        MessageBox.Show(myFave2.Name & ", " & myFave2.Country)

        '//local type inference
        Dim myFave3 = New MyFaveGuitarist("Nuno Bettencourt", "USA") _
        With {.Band = "It was Extreme"}
        '//cek type dari object tsb :
        MessageBox.Show(myFave3.GetType.ToString)

        '//anomymous type
        Dim myFave4 = New With {.Name = "Steve Vai", .Country = "USA"}
        '//cek type dari object tsb :
        MessageBox.Show(myFave4.GetType.ToString)

        '//anomymous type
        Dim myFave5 = New With {.Name = "Eross Chandra"}
        '//cek type dari object tsb :
        MessageBox.Show(myFave5.GetType.ToString)
    End Sub

End Module

Object Initialization Expressions (saya singkat OIE, biar ga kepanjangan :) ) di VB 9.0 ditandai dengan keyword "With", diikuti dengan Curly Bracket (mirip inisialisasi array). Didalam curly bracket tsb untuk mengakses public membernya digunakan tanda titik sehingga Intellisense nya muncul. Dengan OIE ini kita dapat sekaligus akses public member yang tidak terdapat di dalam constructornya.

Fitur local type inference juga dapat kita gunakan. Dapat kita lihat dari deklarasi variable myFave3 berupa message seperti ini :

Anonymous Type juga dapat menggunakan OIE ini. Message yang dihasilkan dari variabel myFave4 yaitu :

Untuk anonymous type variabel myFave5 messagenya seperti ini :

Kedua message yang dihasilkan dari kedua anonymous type tersebut didefinisikan oleh VB dengan nama "VB$AnonymousType" , angka pertama menunjukan urutan instance object tersebut, angka kedua menunjukkan jumlah parameter yang digunakan, kemudian informasi terakhir yaitu berupa tipe data yang digunakan untuk parameter tersebut.


[Comments]

[Write your comment]
Name (required)
URL (optional)
Example : http://www.yulianmf.com  
Comment

irtu
Input code above below (Case Sensitif) :
About Me 
Rully Yulian MF
My Name is Rully Yulian Muhammad Firmansyah. I am an IT Trainer, IT Consultant and Application Developer spesializing in Microsoft .NET technology and SQL Server database. I live in Bandung, Indonesia. My hobby is to play Guitar. [Read More...]
Top Download 
Bagaimana caranya menginstal database ketika deploying sebuah aplikasi? : Downloaded 2231 times  
Change Group,Sort Order, Filtering By Date in Crystal Reports : Downloaded 2192 times  
Simple Voice Engine Application With Sound Player Class... : Downloaded 1523 times  
DataGridView Grouping : Downloaded 1243 times  
WinForms DataGrid Paging With SqlDataAdapter : Downloaded 1232 times  
Article Category 
Links 
Award 
Certifications 
MOS 2007
MCAS
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench
Native Enterprise - IT Training 
Native Enterprise Facebook Group 
My Facebook 
My LinkedIn 
Syndication (RSS 2.0) 
Powered By 
Native Enterprise News