Aracılığıyla paylaş


Nasıl yapılır: başka bir yordamına Visual Basic yordamları geçmesi

Bu örnek, temsilciler başka bir yordam yordam geçirmek için nasıl kullanılacağını gösterir.

Bir temsilci gibi başka bir türü kullanabileceğiniz bir türüdür Visual Basic.AddressOf İşleci bir yordam adı uygulandığında bir temsilci nesnesini döndürür.

Bu yordam ile elde edilen başka bir yordam başvurusudur alabileceği bir temsilci parametresi vardır AddressOf işleci.

Temsilci ve eşleşen yordamlar oluşturma

  1. Adlı bir temsilci yaratma MathOperator.

    Delegate Function MathOperator( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
    
  2. Adlı bir yordam oluşturmak AddNumbers parametreleri ve uyacak dönüş değeri MathOperator, böylece imzalar.

    Function AddNumbers( 
        ByVal x As Double, 
        ByVal y As Double 
    ) As Double
        Return x + y
    End Function
    
  3. Adlı bir yordam oluşturmak SubtractNumbers eşleşen bir imza ile MathOperator.

    Function SubtractNumbers( 
        ByVal x As Double, 
        ByVal y As Double
    ) As Double
        Return x - y
    End Function
    
  4. Adlı bir yordam oluşturmak DelegateTest , temsilci parametre olarak alır.

    Bu yordamı bir başvuru kabul AddNumbers veya SubtractNumbers, kendi imzaları uyan olduğu MathOperator imza.

    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. Adlı bir yordam oluşturmak Test , çağrı DelegateTest temsilcisi ile bir kez AddNumbers parametre olarak ve yeniden temsilcisi ile SubtractNumbers parametre olarak.

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

    Zaman Test olan adı verilen ilk sonucunu görüntüler AddNumbers üzerinde acting 5 ve 3, 8 olduğu.Sonra sonucu SubtractNumbers üzerinde çalışan 9 ve 3 görüntülenir, 6 olduğu.

Ayrıca bkz.

Görevler

Nasıl yapılır: Delegate yöntemi (Visual Basic) çağırma

Başvuru

AddressOf işleci (Visual Basic)

Temsilci bildirimi

Diğer Kaynaklar

Temsilciler (Visual Basic)