我希望将一个事件传递给一个辅助函数。这个函数将向事件附加一个方法。然而,我在正确传递事件方面遇到了麻烦。我尝试过传递EventHandler<TEventArgs>
,它能编译通过,但是事件没有被附加(但仍然被添加;似乎是事件处理程序的副本被创建了)。
举例来说,如果我有这个:
public event EventHandler<EventArgs> MyEvent;
并且这个帮助函数:
public static void MyHelperFunction<TEventArgs>(EventHandler<TEventArgs> eventToAttachTo)
{
eventToAttachTo += (sender, e) => { Console.WriteLine("Hello world"); };
}
同时调用方:
MyHelperFunction(MyEvent);
MyEvent(null, new EventArgs()); // Does nothing.