Halo, ini adalah posting ketujuh saya tentang fitur dari VB9 yaitu Extension Method, anda dapat melihat posting saya sebelumnya:
- Implicitly typed local vaiable
- Object initializer
- Anonymous types
- Nullable types
- If Ternary operator
- Partial Method
Extension method digunakan untuk menambahkan method kedalam class tanpa harus menulis ulang atau mengoverride class tersebut, biasanya digunakan untuk class-class bawaan dari .NET yang kita tidak bisa memodifikasinya langsung (mis: String). Untuk menambahkan extension method anda harus menambahkan keyword <Extension()>.
Misal anda ingin membuat method untuk membalik kata, padahal pada class String belum disediakan method tersebut maka anda dapat menambahkannya dengan Extension Method.
Pada VB8 anda dapat menuliskannya sebagai berikut :
Sub Main()
Dim nama = "Erick Kurniawan"
Dim balikNama = BalikKata(nama).ToLower().Substring(0, 9)
'Dim balikNama = nama.ToLower().BalikKata().Substring(0, 9)
'Console.WriteLine(balikNama)
End Sub
Function BalikKata(ByVal kata As String) As String
Dim kar = kata.ToCharArray()
Array.Reverse(kar)
Return New String(kar)
End Function
Anda harus memanggil fungsi dengan cara diatas karena memang fungsi BalikKata tidak ada dalam class String, jika anda ingin menambahkan method BalikKata dalam class String maka anda dapat menuliskan:
Imports System.Runtime.CompilerServices
Module ExtensionMethod
Sub Main()
Dim nama = "Erick Kurniawan"
Dim balikNama = nama.ToLower().BalikKata().Substring(0, 9)
Console.WriteLine(balikNama)
End Sub
<Extension()> _
Function BalikKata(ByVal kata As String) As String
Dim kar = kata.ToCharArray()
Array.Reverse(kar)
Return New String(kar)
End Function
End Module
Dengan menggunakan extension method anda dapat melakukan penulisan dengan cara “chaining” yang akan terasa lebih natural:
Dim balikNama = nama.ToLower().BalikKata().Substring(0, 9)