Lambda Expression In VB 9.0 (Func and Function)

Created at : Nov/19/2008  
1071 Views   0 Comments

VB 9.0 syarat dengan fitur-fitur baru yang dapat "memanjakan" para programmer dalam menyelesaikan suatu kasus ataupun mempermudah penulisan code menjadi lebih simple. Kali ini saya akan membahas fitur Lambda Expression di VB 9.0. Func dan Function (Inline function) merupakan implementasi dari Lambda Expression.

Func merupakan sebuah delegate type. Jadi anda dapat membuat sebuah delegate tanpa harus mendeklarasikan terlebih dahulu delegate type nya. Func dibuat dengan menggunakan input parameter yang maksimum jumlahnya empat atau tanpa input parameter. Didalam Func ini didefinisikan juga tipe data return value nya.

Saya buat contoh sederhana terlebih dahulu penggunaan "Classic Delegate" :

Public Class LambdaExpressionVB9

Private Delegate Function MyDelegateFunction(ByVal Input As Integer) As Boolean

Private Function
IsEvenFunction(ByVal Number As Integer) As Boolean
Return
Number Mod 2 = 0
End Function

Private Sub
btnClassicDelegate_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnClassicDelegate.Click

Dim execNumber As MyDelegateFunction = AddressOf IsEvenFunction
Dim IsEven = execNumber(2)
MsgBox(IsEven) '// hasilnya True

End Sub

End Class

Sekarang bandingkan penggunaan delegate dengan Func :

Public Class LambdaExpressionVB9

Private Function IsEvenFunction(ByVal Number As Integer) As Boolean
Return
Number Mod 2 = 0
End Function

Private Sub
btnFunc_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnFunc.Click

Dim execNumber As Func(Of Integer, Boolean) = _
AddressOf IsEvenFunction

Dim IsEven = execNumber(3)
MsgBox(IsEven) '// hasilnya False

End Sub

End Class

Kode diatas dibuat untuk mengecek apakah sebuah bilangan itu bilang genap atau ganjil. Func yang saya create membutuhkan satu buah input parameter dengan tipe data Integer (Of Integer), sedangkan return valuenya berupa Boolean. Dapat anda lihat diatas, dengan Func maka kita bisa menghilangkan deklarasi signature delegate seperti yang biasa kita lakukan.

Lalu apa itu Function (Inline Function) ??

Inline Function ialah sebuah fungsi tanpa nama. Tipe data return valuenya di infer dari block code yang ditulis. Dengan Inline function ini kita dapat deklarasikan sebuah fungsi seperti kita deklarasikan variabel biasa. Kode di atas akan saya rubah dengan menggunakan Inline Function untuk delegate nya :

Public Class LambdaExpressionVB9

Private Sub btnInlineFunction_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnInlineFunction.Click

Dim execNumber As Func(Of Integer, Boolean) = _
Function(Num As Integer) Num Mod 2 = 0

Dim IsEven = execNumber(2)
MsgBox(IsEven) '// hasilnya True

End Sub

End Class

Signature Inline Function harus sesuai dengan signature delegate Func (Untuk kasus diatas harus ada satu buah input parameter integer). Sedangkan tipe data return valuenya di infer dari block code Inline Function itu sendiri (Dalam hal ini Num Mod 2 = 0)...So mana yang lebih efektif dari sisi teknik pengkodeannya? ;)

Happy Coding Vb-ers !! :)


[Comments]

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

DHL9
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