[英]Delegates in VB.NET
我試圖使用委托概念動態AddHandler到不同的事件,即而不是做
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
收到以下錯誤:錯誤15'dlgtAB'類型的值無法轉換為'System.Timers.ElapsedEventHandler'。
你能告訴我這是否可以做到,我做錯了什么
不要聲明自己的委托類型 - 使用ElapsedEventHandler
類型:
Private Sub Test(ByRef tmr as Timer, dlgt as ElapsedEventHandler, intInterval as integer)
這將允許您分配適當的處理程序,因為類型將匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.