Bagikan melalui


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 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

  1. Buat delegasi bernama MathOperator.

    Delegate Function MathOperator( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
    
  2. Buat prosedur bernama AddNumbers dengan parameter dan nilai kembalian yang cocok dengan MathOperator, sehingga tanda tangan 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 mengambil delegasi sebagai parameter.

    Prosedur ini dapat menerima referensi ke AddNumbers atau SubtractNumbers, karena tanda tangannya cocok dengan MathOperator tanda 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 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 menampilkan hasil dari AddNumbers yang bekerja pada 5 dan 3, yaitu 8. Kemudian hasil dari SubtractNumbers yang bertindak pada 9 dan 3 ditampilkan, yaitu 6.

Lihat juga