簡體   English   中英

代表在VB.NET中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM