BC31122:“Custom”修饰符在未用显式委托类型声明的事件上无效

与非自定义事件不同,Custom Event 声明需要在事件名称后有一个 As 子句,明确指定事件的委托类型。

可以使用 As 子句和显式委托类型来定义非自定义事件,也可以使用紧跟在事件名称后面的参数列表来定义。

错误 ID:BC31122

更正此错误

  1. 定义一个与自定义事件具有相同参数列表的委托。

    例如,如果 Custom EventCustom Event Test(ByVal sender As Object, ByVal i As Integer) 定义,则对应的委托将如下所示。

    Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
    
  2. 将自定义事件的参数列表替换为指定委托类型的 As 子句。

    继续此示例,Custom Event 声明将被重写如下。

    Custom Event Test As TestDelegate
    

示例

此示例声明一个 Custom Event 并使用委托类型指定所需的 As 子句。

Delegate Sub TestDelegate(ByVal sender As Object, ByVal i As Integer)
Custom Event Test As TestDelegate
    AddHandler(ByVal value As TestDelegate)
        ' Code for adding an event handler goes here.
    End AddHandler

    RemoveHandler(ByVal value As TestDelegate)
        ' Code for removing an event handler goes here.
    End RemoveHandler

    RaiseEvent(ByVal sender As Object, ByVal i As Integer)
        ' Code for raising an event goes here.
    End RaiseEvent
End Event

另请参阅