我需要将一个函数的引用传递给 VB.NET 中的另一个函数。如何才能做到这一点?
我的函数需要在内部使用 AddHandler,为此我需要向它传递一个处理函数。我下面的代码显然不起作用,但它传达了我需要的想法。
Public Function CreateMenuItem(ByVal Name As String, ByRef Func As AddressOf ) As MenuItem
Dim item As New MenuItem
item.Name = Name
'item. other options
AddHandler item.Click, AddressOf Func
Return item
End Function
还有其他方法可以做到这一点吗? AddHandler 需要以某种方式设置为函数中传递的参数......
函数委托正是您执行此操作所需要的。首先,您需要在类中的某个位置定义委托。当然,更改签名以适合您的活动。
Public Delegate Sub MyDelegate(sender As System.Object, e As System.EventArgs)
您的函数将采用委托作为参数。
Public Function CreateMenuItem(ByVal Name As String, del As MyDelegate) As MenuItem
''''
AddHandler item.Click, del
''''
End Function
Public Sub MyEventHandler(sender As System.Object, e As System.EventArgs)
''''
End Sub
以下是调用该函数的方法:
CreateMenuItem(myString, AddressOf MyEventHandler)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)