Útmutató: Eljárások átadása egy másik eljáráshoz a Visual Basicben
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 meghatalmazottat .
MathOperator
Delegate Function MathOperator( ByVal x As Double, ByVal y As Double ) As Double
Hozzon létre egy paraméterekkel és visszaadott értékkel ellátott
AddNumbers
eljá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 Function
Hozzon létre egy, a megfelelő
MathOperator
aláírással ellátottSubtractNumbers
eljárást.Function SubtractNumbers( ByVal x As Double, ByVal y As Double ) As Double Return x - y End Function
Hozzon létre egy olyan eljárást,
DelegateTest
amely paraméterként egy delegáltat vesz igénybe.Ez az eljárás elfogadhat egy hivatkozást
AddNumbers
, vagySubtractNumbers
azért, mert az aláírásuk megegyezik az aláírássalMathOperator
.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
Hozzon létre egy olyan eljárást
Test
, amely egyszer meghívjaDelegateTest
a meghatalmazottatAddNumbers
paraméterként, majd a meghatalmazottatSubtractNumbers
paraméterként.Protected Sub Test() DelegateTest(5, AddressOf AddNumbers, 3) DelegateTest(9, AddressOf SubtractNumbers, 3) End Sub
Amikor
Test
a rendszer meghívja, először megjeleníti a működés5
eredményétAddNumbers
, és3
a 8-at. Ezután megjelenik és3
megjelenik a működés9
eredményeSubtractNumbers
, ami 6.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: