Aracılığıyla paylaş


Nasıl yapılır: Visual Basic'de Başka Bir Yordama Yordam Geçirme

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: Temsilci Yöntemi Çağırma (Visual Basic)

Başvuru

AddressOf İşleci (Visual Basic)

Delegate Deyimi

Diğer Kaynaklar

Temsilciler (Visual Basic)