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)
这将允许您分配适当的处理程序,因为类型将匹配