Pengetahuan Dasar event dan Delegate Pada Visual Basic.NET (VB.NET)

Pendahuluan

VB.net tidak  mengijinkan referensi method/prosedur digunakan sebagai argumen secara langsung untuk method lainnnya,  tetapi VB.net menyediakan delegasi/delegate, yang merupakan class yang menyimpan referensi ke metode. Sebuah objek delegate yang berisi metode referensi dapat dikirimkan ke method lainnya (dapat dijadikan parameter sebuah method)

Langkah langkah menggunakan delegate

1 pertama kita harus terlebih dahulu mendeklarasikannya terlebih dahulu . Deklarasi delegate menetapkan Metode signature (parameter dan return value). Method/prosedur  yg terkandung  dalam objek delegate, harus memiliki metode signature sama seperti yang didefinisikan dalam deklarasi delegate .

2. langkah kedua membuat method/prosedur yang memiliki signature yg sama dengan deklarasi delegate.

3. Langkah ketiga adalah membuat instance delegasi melalui kata kunci AddressOf, yang secara implisit membuat sebuah delegate instance yg mengandung referensi untuk metode tersebut.

4. Setelah kita membuat instance delegate, kita bisa memanggil(invoke) referensi method yg terkandung dlm delegate instance tsb.

Contoh1  delegate  prosedure

‘mendefinisikan delegate, parameternya  harus sama dgn prosedur  yg akan diwakili/delegasikan.
Public Delegate Sub myDelegate(ByVal par1 As String)
‘ buat objek delegate
Dim objDelegate As myDelegate

Public Sub prosedur1(ByVal nama As String)                           ‘prosedeur yg akan diwakili/delegasikan
Console.WriteLine(“apa kabar ” + nama )
End Sub

‘memberikan alamat fungsi/method  yg diwakili ke objek delegate  menggunakan ‘AddressOf’
objDelegate = AddressOf prosedur1

‘objDelegate sekarang sdh resmi dilantik mewakili method1   :-)

‘Invoking/jalankan prosedur1 melalui delegate
objDelegate.Invoke(“Fatih”)

‘output :  “apa kabar Fatih”       ‘

bisa juga di jalankan tanpa invoke:

objDelegate(“Fatih”)

contoh 2 delegate  method

Module Latihan

    Delegate Sub myDelegate()

    Private Class ClsTest
        Public Sub method1()
            Console.Writeln("ini dari method yg diwakili")
        End Sub
    End Class

    Public Function Main() As Integer
        Dim objDelegate As myDelegate
        Dim objClass As ClsTest = New ClsTest

        ObjDelegate = AddressOf  objClass.Method1
        objDelegate()

        Return 0
    End Function

End Module

Delegate sebagai Argument

Module Module1

Private jarijari As Double
Delegate Function delegateRxR(ByVal value As Double) As Double

Public Function Luas(ByVal R2 As delegateRxR) As Double
Return R2(jarijari) * Math.PI ‘ luas lingkaran Pi x R x R
End Function

Public Function hitungRxR(ByVal value As Double) As Double
Return value * value
End Function
Sub Main()
Dim r As Double = 10
Dim objDelegateRxR As delegateRxR

objdelegateRxR = New delegateRxR(AddressOf hitungRxR)
Console.WriteLine(“luas lingkaran = ” & CStr(objdelegateRxR.Invoke(r)))
Console.ReadLine()

End Sub

End Module

referensi

http://functionx.com/visualbasic/Lesson20.htm

Advertisements

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 04/10/2014, in Daftar isi and tagged , . Bookmark the permalink. Leave a comment.

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: