如何从另一个实现包含事件的接口的类中引发事件?
Public Interface IMyEvent
Event MyEvent()
End Interface
Public Class ClassA
Implements IMyEvent
Public Event MyEvent() Implements IMyEvent.MyEvent
End Class
Public Class ClassB
Public myClassA As New ClassA
Public Sub New()
Dim myIEvent As IMyEvent = CType(myClassA, IMyEvent)
RaiseEvent myIEvent.MyEvent ' Doesn't work.
End Sub
End Class
注意评论 - 该代码不起作用。如果它通过接口包含在另一个类中,我怎样才能引发这样的事件?
答案 0 :(得分:1)
首先,你不能这样做的原因是因为event
只能在声明它们的类上调用。
通常的方法是提供调用事件的protected
OnEventName()
方法。然后,您可以从类继承并调用或覆盖OnEventName()
方法以调用该事件。如果您真的希望能够从层次结构中不相关的类中执行此操作,则可以将OnEventName()
方法添加到您声明的接口。