Sdílet prostřednictvím


Postupy: Předání procedur jiné proceduře v jazyce Visual Basic

Tento příklad ukazuje, jak použít delegáty předat postup jiný postup.

Delegát je typ, který můžete použít jako libovolný jiný typ v Visual Basic.AddressOf Operátor vrací objekt delegát při použití název procedury.

V tomto příkladu má postup s parametrem delegát může mít odkaz na jiný postup, získané AddressOf operátor.

Vytvořit delegáta a odpovídající postupy

  1. Vytvořit delegáta s názvem MathOperator.

    Delegate Function MathOperator( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
    
  2. Vytvořit proceduru s názvem AddNumbers parametrů a vrácené hodnoty, které odpovídají MathOperator, tak, aby odpovídaly podpisy.

    Function AddNumbers( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double 
        Return x + y
    End Function
    
  3. Vytvořit proceduru s názvem SubtractNumbers s podpisem, který odpovídá MathOperator.

    Function SubtractNumbers( 
        ByVal x As Double, 
        ByVal y As Double
    ) As Double 
        Return x - y
    End Function
    
  4. Vytvořit proceduru s názvem DelegateTest , která má jako parametr delegáta.

    Tento postup můžete přijmout odkaz na AddNumbers nebo SubtractNumbers, protože jejich podpisy odpovídat MathOperator podpisu.

    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. Vytvořit proceduru s názvem Test , který volá DelegateTest jednou s delegátem pro AddNumbers jako parametr a znovu s delegátem pro SubtractNumbers jako parametr.

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

    Při Test je volána, nejprve zobrazí výsledek AddNumbers působit na 5 a 3, což je 8.Pak výsledek SubtractNumbers na 9 a 3 je zobrazen, což je 6.

Viz také

Úkoly

Postupy: Volání metody delegáta (Visual Basic)

Referenční dokumentace

AddressOf – operátor (Visual Basic)

Delegate – příkaz

Další zdroje

Delegáti (Visual Basic)