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

  1. Untuk membuat delegasi bernama MathOperator.

    Delegate Function MathOperator( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
    
  2. Buat prosedur bernama AddNumbers dengan parameter dan munculkan nilai yang cocok dengan MathOperator, sehingga tanda tangannya cocok.

    Function AddNumbers( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
        Return x + y
    End Function
    
  3. Buat prosedur bernama SubtractNumbers dengan tanda tangan yang cocok dengan MathOperator.

    Function SubtractNumbers( 
        ByVal x As Double, 
        ByVal y As Double
    ) As Double
        Return x - y
    End Function
    
  4. Buat prosedur bernama DelegateTest yang menggunakan delegasi sebagai parameter.

    Prosedur ini dapat menerima referensi ke AddNumbers atau SubtractNumbers, karena tanda tangannya cocok dengan tanda tangan MathOperator.

    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
    
  5. Buat prosedur bernama Test yang memanggil DelegateTest sekali dengan delegasi untuk AddNumbers sebagai parameter, dan sekali lagi dengan delegasi untuk SubtractNumbers sebagai parameter.

    Protected Sub Test()
        DelegateTest(5, AddressOf AddNumbers, 3)
        DelegateTest(9, AddressOf SubtractNumbers, 3)
    End Sub
    

    Ketika Test dipanggil, pertama-tama akan menampilkan hasil AddNumbers bertindak pada 5 dan 3, yaitu 8. Kemudian hasil SubtractNumbers bertindak pada 9, dan 3 ditampilkan, yaitu 6.

Lihat juga