【问题标题】:Fix the following errors修复以下错误
【发布时间】:2017-12-11 22:35:24
【问题描述】:

我尝试修复以下 VB.Net 代码:

Public Delegate Sub RequestHandler(ByVal sender As Object, ByVal e As ManageEventArgs)  



Public Custom Event RequestEvent As RequestHandler
            AddHandler(value As RequestHandler)

            End AddHandler
            RemoveHandler(value As RequestHandler)

            End RemoveHandler
            RaiseEvent(sender As Object, e As ManageEventArgs)

            End RaiseEvent
        End Event  



Public Function Request(ByVal bizID As String, ByVal Optional table As Hashtable = Nothing) As ArrayList
            Me.aList = New ArrayList
            If (Not Me.RequestEvent Is Nothing) Then
                Dim e As New ManageEventArgs(bizID, table)
                Me.RequestEvent.Invoke(Me, e)
            End If
            Return Me.aList
        End Function

我收到以下错误:

Error   BC32022 'Public Event RequestEvent As Manage.RequestHandler' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.  

VB.Net 不是我的首选语言,因此我们将不胜感激

【问题讨论】:

  • @Plutonix,您应该检查this 以查看该语法是否有效,但如果没有将代码添加到这些块中,则此处毫无意义。
  • @jmcilhinney 谢谢!我不知道它可以用作块。部分原因是End AddHandler 听起来不太对

标签: vb.net event-handling


【解决方案1】:

更简单的方法:

Public Event RequestEvent(sender As Object, e As ManageEventArgs)

然后:

Public Function Request(bizID As String, Optional table As Hashtable = Nothing) As ArrayList
  Dim aList As New ArrayList

  RaiseEvent RequestEvent(Me, New ManageEventArgs(bizID, table))

  Return aList
End Function

我不确定你的 aList 是怎么回事。

【讨论】:

  • 谢谢。那行得通。老实说,我也不知道关于 aList。我得到的只是一堆反编译的 VB.Net 代码转储在我的工作文件夹中..
猜你喜欢
  • 1970-01-01
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 2019-12-18
  • 1970-01-01
  • 2016-09-10
相关资源
最近更新 更多