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
Adlı bir temsilci yaratma MathOperator.
Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As Double
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
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
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
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)