Extension Methods di VB 9.0

Posted at : Oct/09/2007
3823 Views | 0 Comments

Pernahkah kita bayangkan untuk extended sebuah type lewat type baru tanpa harus inherits dari type tersebut? Atau misalkan sebuah type yang kita buat ingin menggunakan semua fungsionalitas yang terdapat di dalam type tersebut tanpa harus melakukan inheritance? Bukan suatu cara yang effektif kalau kita harus selalu melakukan pewarisan kalau member yang di extend hanya beberapa member saja.

Dengan Extension Methods seorang programmer tidak perlu lagi untuk repot-repot melakukan hal yang saya sebutkan diatas. Kita dapat melakukan ekstensifikasi type dengan menambahkan member baru tanpa harus membuat type baru dengan inheritance. Ekstensifikasi ini dapat dilakukan terhadap Reference dan Value type. 

Extension Method di VB.NET harus dideklarasikan didalam Module, tidak dapat dideklarasikan didalam sebuah class. Module dan member yang akan dijadikan sebagai Extension Methods harus diberi atribute <Extension()>. Atribute class tersebut berada di dalam namespace "System.Runtime.CompilerServices", jadi namespace tersebut harus di Imports terlebih dahulu atau menggunakan Fully Qualified Namespace.

Saya akan membuat contoh sederhana untuk mengaplikasikan Extension Methods ini. Misalkan saya akan extend member baru untuk tipe data DateTime. Member yang akan saya tambahkan yaitu berupa fungsi yang akan mengembalikan format tanggal berupa string yang formatnya kita tentukan. Berikut kode nya :

   1:  Imports System.Runtime.CompilerServices
   2:   
   3:  <Extension()> _
   4:  Module MyExtensionMethods
   5:   
   6:      Private Const ddMMyyyy As String = "dd/MM/yyyy"
   7:      Private Const ddMMMyyyy As String = "dd/MMM/yyyy"
   8:      Private Const ddMMMMyyyy As String = "dd/MMMM/yyyy"
   9:   
  10:      <Extension()> _
  11:      Public Function MonthInTwo(ByVal Tanggal As DateTime) As String
  12:          Return Format(Tanggal, ddMMyyyy)
  13:      End Function
  14:   
  15:      <Extension()> _
  16:      Public Function MonthInThree(ByVal Tanggal As DateTime) As String
  17:          Return Format(Tanggal, ddMMMyyyy)
  18:      End Function
  19:   
  20:      <Extension()> _
  21:      Public Function MonthInFour(ByVal Tanggal As DateTime) As String
  22:          Return Format(Tanggal, ddMMMMyyyy)
  23:      End Function
  24:   
  25:  End Module

Semua member yang akan dijadikan sebagai Extension Methods diberi atribut <Extension()> begitu juga dengan deklarasi modulnya. Code di atas melakukan ekstensifikasi member untuk tipe data DateTime dengan menambahkan fungsi baru yang akan mengembalikan nilai tanggal dengan format yang sudah ditentukan. Untuk menggunakan Extension Methods tersebut dari sebuah class atau modul, kita harus melakukan Imports terlebih dahulu ke Namespace type yang bersangkutan, berikut kode penggunaannya :

   1:  Imports System.Windows.Forms
   2:  Imports NewInVB90.MyExtensionMethods
   3:   
   4:  Module NewInVB90
   5:   
   6:      Sub Main()
   7:          Dim myDate As DateTime = Now
   8:          MessageBox.Show(myDate.MonthInTwo, "Extension Methods")
   9:          MessageBox.Show(myDate.MonthInThree, "Extension Methods")
  10:          MessageBox.Show(myDate.MonthInFour, "Extension Methods")
  11:      End Sub
  12:   
  13:  End Module

Dari kode di atas dapat kita lihat hasil dari ekstensifikasi method yang dilakukan terhadap tipe data DateTime akan muncul di jendela Intellisense nya...Fitur yang menarik bukan :)


[Comments]


[Write your comment]

Name (required)

Email (required-will not published)

 
Comment
FCVD
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.