Cara: Meneruskan Prosedur ke Prosedur Lain di Visual Basic
Contoh ini menunjukkan cara menggunakan delegasi untuk meneruskan prosedur ke prosedur lain.
Delegasi adalah jenis yang dapat Anda gunakan seperti jenis lain dalam Visual Basic. Operator AddressOf
memunculkan objek delegasi saat diterapkan ke nama prosedur.
Contoh ini memiliki prosedur dengan parameter delegasi yang dapat mengambil referensi ke prosedur lain, diperoleh dengan operator AddressOf
.
Membuat delegasi dan prosedur pencocokan
Untuk membuat delegasi bernama
MathOperator
.Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As Double
Buat prosedur bernama
AddNumbers
dengan parameter dan munculkan nilai yang cocok denganMathOperator
, sehingga tanda tangannya cocok.Function AddNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x + y End Function
Buat prosedur bernama
SubtractNumbers
dengan tanda tangan yang cocok denganMathOperator
.Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End Function
Buat prosedur bernama
DelegateTest
yang menggunakan delegasi sebagai parameter.Prosedur ini dapat menerima referensi ke
AddNumbers
atauSubtractNumbers
, karena tanda tangannya cocok dengan tanda tanganMathOperator
.Sub DelegateTest( ByVal x As Double, ByVal op As MathOperator, ByVal y As Double ) Dim ret As Double ret = op.Invoke(x, y) ' Call the method. MsgBox(ret) End Sub
Buat prosedur bernama
Test
yang memanggilDelegateTest
sekali dengan delegasi untukAddNumbers
sebagai parameter, dan sekali lagi dengan delegasi untukSubtractNumbers
sebagai parameter.Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End Sub
Ketika
Test
dipanggil, pertama-tama akan menampilkan hasilAddNumbers
bertindak pada5
dan3
, yaitu 8. Kemudian hasilSubtractNumbers
bertindak pada9
, dan3
ditampilkan, yaitu 6.