Object Initialization Expressions di VB 9.0

Posted at : Oct/09/2007
3321 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)

Email (required-will not published)

 
Comment
L902
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6982 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

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