您如何创建"Class initiated"事件还是有事件?



我想有一个事件,当一个类实例被创建时触发。我希望这能在课堂上发生。我知道我可以在新实例代码执行后的一行引发事件,但如果你有几个地方更新类,那就违背了OOD的目的。

我试图从Sub New引发事件,这导致触发器被触发,但当时没有创建实例,因此当事件处理程序触发实例时,该实例是nothing

解决方案-使用共享事件的工厂方法


public class MyClass

public shared event SomeEvent As EventHandler

private sub New()
end sub
public shared sub CreateInstance()
Dim instance as new MyClass()
RaiseEvent SomeEvent(instance, new EventArgs())
return instance;
End Sub
end class

消费
AddHandler MyClass.SomeEvent, AddressOf SomeHandlerMethod
dim cls as MyClass = MyClass.CreateInstance()

SomeHandlerMethod会在你得到cls之前运行

相关内容

  • 没有找到相关文章

最新更新