如何:在 Visual Basic 中將程序傳遞至其他程序
此範例示範如何使用委派,將一個程序傳遞至另一個程序。
委派是一種類型,使用方式就像 Visual Basic 中的其他任何類型一樣。 運算子 AddressOf
會在套用至程序名稱時,傳回委派物件。
此範例的程序有一個委派參數,其會參考使用 AddressOf
運算子取得的另一個程序。
建立委派以及比對程序
建立名稱為
MathOperator
的委派。Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As Double
建立名稱為
AddNumbers
的程序,其有參數以及符合MathOperator
的傳回值,讓特徵標記相符。Function AddNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x + y End Function
建立名稱為
SubtractNumbers
的程序,而其特徵標記與MathOperator
相符。Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End Function
建立名稱為
DelegateTest
的程序,其將委派視為參數。此程序可接受對
AddNumbers
或SubtractNumbers
的參考,因為其特徵標記與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
建立名稱為
Test
的程序,其會呼叫一次DelegateTest
,其取AddNumbers
委派為一參數,而且取SubtractNumbers
委派也為一參數。Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End Sub
呼叫
Test
時,會先顯示對5
和3
進行的AddNumbers
結果,也就是 8。 然後會顯示對9
和3
進行的SubtractNumbers
結果,也就是 6。