Nasıl yapılır: Visual Basic'de Başka Bir Yordama Yordam Geçirme
Bu örnekte, bir yordamı başka bir yordama geçirmek için temsilcilerin nasıl kullanılacağı gösterilmektedir.
Temsilci, Visual Basic'teki diğer türlerde olduğu gibi kullanabileceğiniz bir türdür. işleci, AddressOf
bir yordam adına uygulandığında bir temsilci nesnesi döndürür.
Bu örnekte, işleçle elde edilen başka bir yordama başvuru alabilen bir temsilci parametresine AddressOf
sahip bir yordam vardır.
Temsilci ve eşleşen yordamları oluşturma
adlı
MathOperator
bir temsilci oluşturun.Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As Double
parametreleriyle adlı
AddNumbers
bir yordam oluşturun ve imzaların eşleşmesiMathOperator
için değerleriyle eşleşen bir değer döndürin.Function AddNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x + y End Function
ile eşleşen
MathOperator
bir imza ile adlıSubtractNumbers
bir yordam oluşturun.Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End Function
Parametre olarak temsilci alan adlı
DelegateTest
bir yordam oluşturun.İmzaları imzayla
AddNumbers
eşleştiğinden, bu yordam veyaSubtractNumbers
için bir başvuru kabulMathOperator
edebilir.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
parametresi için temsilcisiyle bir kez ve parametresi olarak için temsilcisiyle
SubtractNumbers
AddNumbers
bir kez çağıranDelegateTest
adlıTest
bir yordam oluşturun.Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End Sub
Çağrıldığında
Test
, ilk olarak ve3
üzerinde5
8 olan üzerinde hareket etmeninAddNumbers
sonucunu görüntüler. Ardından ve üzerinde9
3
hareket etmeninSubtractNumbers
sonucu görüntülenir ve 6 olur.