共用方式為


作法:將程式傳遞至 Visual Basic 中的另一個程式

這個範例示範如何使用委派將程序傳遞至另一個程式。

委派是一種類型,您可以像 Visual Basic 中的任何其他類型一樣使用。 當套用至程式名稱時,運算符 AddressOf 會傳回委派物件。

這個範例具有委派參數的程式,可參考以 AddressOf 運算符取得的另一個程式。

建立委派和比對程式

  1. 建立名為 MathOperator的委派。

    Delegate Function MathOperator( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
    
  2. 使用 參數建立名為 AddNumbers 的程式,並傳回符合 的 MathOperator值,讓簽章相符。

    Function AddNumbers( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
        Return x + y
    End Function
    
  3. 使用符合的SubtractNumbers簽章建立名為 MathOperator 的程式。

    Function SubtractNumbers( 
        ByVal x As Double, 
        ByVal y As Double
    ) As Double
        Return x - y
    End Function
    
  4. 建立名為 DelegateTest 的程式,以委派作為參數。

    此程序可以接受 AddNumbersSubtractNumbers的參考,因為其簽章符合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. 建立名為 Test 的程序,該程序會以 DelegateTest 委派作為參數呼叫 AddNumbers 一次,再以 SubtractNumbers 委派作為參數再次呼叫 AddNumbers

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

    當呼叫 Test 時,它會先顯示由 AddNumbers 作用於 53 的結果,也就是 8。 然後,SubtractNumbers 作用在 93 上的結果會顯示出來,結果是 6。

另請參閱