VB.NET中的代理
我试图使用委托概念来动态地将处理程序添加到不同的事件中,即。 而不是做VB.NET中的代理,.net,vb.net,.net,Vb.net,我试图使用委托概念来动态地将处理程序添加到不同的事件中,即。 而不是做 AddHandler tmrA.Elapsed, AddressOf tmrA_Tick AddHandler tmrB.Elapsed, AddressOf tmrB_Tick Private Sub tmrA_Tick(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs) ' something here
AddHandler tmrA.Elapsed, AddressOf tmrA_Tick
AddHandler tmrB.Elapsed, AddressOf tmrB_Tick
Private Sub tmrA_Tick(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs)
' something here
End Sub
Private Sub tmrB_Tick(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs)
' something here
End Sub
我试图做到:
Private Delegate Sub dlgtAB(ByVal sender As System.Object, ByVal e As System.Timers.ElapsedEventArgs)
然后
Private Sub Test(ByRef tmr as Timer, dlgt as dlgtAB, intInterval as integer)
tmr = New Timer(intInterval)
AddHandler tmr.Elapsed, dlgtAB ' getting error right here on dlgtAB
End Sub
获取以下错误:“dlgtAB”类型的错误15值无法转换为“System.Timers.ElapsedEventHandler”
你能告诉我这是否可以做到,我做错了什么吗?不要声明你自己的委托类型-使用
ElapsedEventHandler
类型:
Private Sub Test(ByRef tmr as Timer, dlgt as ElapsedEventHandler, intInterval as integer)
这将允许您分配适当的处理程序,因为类型将匹配