Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a példa bemutatja, hogyan adhat át egy eljárást egy másik eljárásnak meghatalmazottak használatával.
A meghatalmazott olyan típus, amelyet a Visual Basic bármely más típushoz hasonlóan használhat. Az AddressOf operátor egy delegált objektumot ad vissza egy eljárásnévre alkalmazva.
Ez a példa egy delegált paraméterrel rendelkező eljárással rendelkezik, amely hivatkozhat egy másik, az operátorral beszerzett eljárásra AddressOf .
A delegálási és egyeztetési eljárások létrehozása
Hozzon létre egy delegáltat
MathOperator.Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As DoubleHozzon létre egy paraméterekkel és visszaadott értékkel ellátott
AddNumberseljárást, amely megfelel azoknakMathOperator, hogy az aláírások egyezzenek.Function AddNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x + y End FunctionHozzon létre egy
SubtractNumberseljárást, amelynek aláírása megfelel aMathOperator-nak.Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End FunctionHozzon létre egy olyan eljárást,
DelegateTestamely paraméterként egy delegáltat vesz igénybe.Ez az eljárás elfogadhat egy
AddNumbersvagySubtractNumbershivatkozást, mert az aláírásuk megegyezik aMathOperatoraláírással.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 SubHozzon létre egy
Testnevű eljárást, amely egyszer meghívja aDelegateTest-et aAddNumbersdelegáttal mint paraméter, majd újra meghívja aDelegateTest-et a delegáttal mint paraméter.Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End SubAmikor
Testmeghívásra kerül, először megjelenik az eredménye annak, hogyAddNumbershatással van5és3értékeire, amely eredmény 8. Ezután megjelenikSubtractNumbersműködése9-ra és3-re, ami 6.