這個範例示範如何使用委派將程序傳遞至另一個程式。
委派是一種類型,您可以像 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委派作為參數再次呼叫AddNumbers。Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End Sub當呼叫
Test時,它會先顯示由AddNumbers作用於5和3的結果,也就是 8。 然後,SubtractNumbers作用在9和3上的結果會顯示出來,結果是 6。