Fitur VB10 (Collection Initializer)

Blog sebelumnya seputar Fitur-fitur VB10 dapat anda baca di:

Collection Initializer digunakan untuk menginisialisasi object collection dalam sebuah baris kode saja, sehingga mempermudah penulisan kode.

Pada VB9 untuk menginisialisasi object Collection anda harus menuliskan kode:

   1: Dim objNama As New List(Of String)
   2: objNama.Add("Erick")
   3: objNama.Add("Wely")
   4: objNama.Add("Lutfie")
   5: objNama.Add("Ridi")
   6:  
   7: For Each nama In objNama
   8:     Console.WriteLine(nama)
   9: Next

Pada VB10 dengan menggunakan Collection Initializer anda dapat menggunakan keyword ‘from’ untuk mempersingkat penulisan kode diatas.

   1: Dim objNama As New List(Of String) From {"erick", "wely", "lutfie", "ridi"}
   2: For Each nama In objNama
   3:     Console.WriteLine(nama)
   4: Next

Anda juga dapat menggunakannya untuk object Dictionary

   1: Dim dictMahasiswa As New Dictionary(Of String, String) From {
   2:                                            {"23080008", "erick"},
   3:                                            {"23080009", "budi"},
   4:                                            {"23080010", "anton"}}
   5: For Each mhs In dictMahasiswa
   6:    Console.WriteLine("Nim :" & mhs.Key & "Nama :" & mhs.Value)
   7: Next

Jika anda ingin menginisialisasi list of class maka anda dapat menggunakan extension method untuk mengoverride method ‘add’ yang ada pada object collection.

   1: Imports System.Runtime.CompilerServices
   2: Module Module1
   3:     'menggunakan extension method
   4:     <Extension()>
   5:     Sub Add(ByVal lstMhs As List(Of Mahasiswa),
   6:             ByVal nim As String,
   7:             ByVal nama As String,
   8:             ByVal ipk As Double)
   9:         lstMhs.Add(New Mahasiswa With {.Nim = nim, .Nama = nama, .IPK = ipk})
  10:     End Sub
  11:  
  12:     Sub Main()
  13:         Dim list As New List(Of Mahasiswa) From {
  14:             {"23080008", "Erick Kurniawan", 3.4},
  15:             {"22080009", "Budi Anduk", 3.3}
  16:             }
  17:  
  18:         For Each mhs In list
  19:             Console.WriteLine("Nim :" & mhs.Nim & " Nama :" & mhs.Nama & " Ipk :" & mhs.IPK)
  20:         Next
  21:     End Sub
  22:  
  23: End Module

Array Literals

ArrayLiteral memberi kemudahan kepada kita untuk memberi nilai ke object array secara langsung, compiler akan secara otomatis meng-infers tipe datanya.

   1: Dim arr1 = {1, 2, 4, 5, 6} 'infers ke tipe integer
   2: Dim arr2 = {1, 2.5, 3.5, 5} 'infers ke tipe double
   3: Dim arr3 = {"erick", "budi"} 'infers ke tipe string
   4: Dim arr4 = {1, "erick"} 'infers ke tipe object (dengan catatan Option Strict On)
   5:  
   6: 'untuk array multidimensi
   7: Dim matrix1 = {{1, 32, 12}, {23, 45, 67}} 'infers ke tipe int(,)
Share this post: | | | |
Published Saturday, July 11, 2009 10:36 PM by Erick Kurniawan

Comments

No Comments
Powered by Community Server (Commercial Edition), by Telligent Systems