Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh ini menunjukkan cara menggunakan delegasi untuk meneruskan prosedur ke prosedur lain.
Delegasi adalah jenis yang dapat Anda gunakan seperti jenis lainnya di Visual Basic. Operator AddressOf mengembalikan objek delegasi saat diterapkan ke nama prosedur.
Contoh ini memiliki prosedur dengan parameter delegasi yang dapat mengambil referensi ke prosedur lain, yang diperoleh dengan AddressOf operator.
Membuat prosedur delegasi dan pencocokan
Buat delegasi bernama
MathOperator.Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As DoubleBuat prosedur bernama
AddNumbersdengan parameter dan nilai kembalian yang cocok denganMathOperator, sehingga tanda tangan cocok.Function AddNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x + y End FunctionBuat prosedur bernama
SubtractNumbersdengan tanda tangan yang cocok denganMathOperator.Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End FunctionBuat prosedur bernama
DelegateTestyang mengambil delegasi sebagai parameter.Prosedur ini dapat menerima referensi ke
AddNumbersatauSubtractNumbers, karena tanda tangannya cocok denganMathOperatortanda tangan.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 SubBuat prosedur bernama
Testyang memanggilDelegateTestsekali dengan delegasi untukAddNumberssebagai parameter, dan sekali lagi dengan delegasi untukSubtractNumberssebagai parameter.Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End SubKetika
Testdipanggil, pertama-tama menampilkan hasil dariAddNumbersyang bekerja pada5dan3, yaitu 8. Kemudian hasil dariSubtractNumbersyang bertindak pada9dan3ditampilkan, yaitu 6.