事件可以用作事件监听器吗?

Inv*_*ion 0 c# events

我正在尝试从我正在创建的对象中包含的私有对象中公开一些事件,看起来编译器对此很满意:

private WindowUpdateServer _windowUpdateServer;

public event WindowUpdateHandler WindowUpdated;

public RecieveWindowFramesManager() {

    _windowUpdateServer = new WindowUpdateServer();

    _windowUpdateServer.ExistingWindowUpdated += WindowUpdated; // ExistingWindowUpdated is a WindowUpdateHandler
}
Run Code Online (Sandbox Code Playgroud)

但是在RecieveWindowFramesManager初始化之后_windowUpdateServer.ExistingWindowUpdated == null.

我在这里遗漏了什么 - 看来这应该有用吗?

值得注意的是,在RecieveWindowFramesManager初始化之后,我将一个事件监听器附加到WindowUpdated但它永远不会被调用(即使_windowUpdateServer.ExistingWindowUpdated被触发).

Vil*_*lx- 6

我不确定,但我认为这只会从WindowUpdated事件中分配那些在+ =操作发生时设置的处理程序.由于它是构造函数,因此列表为空.要执行您想要的操作,请为ExistingWindowUpdated创建自己的事件处理程序,并从那里触发WindowUpdated事件.