目前,我使用以下代码在一个类中实现一个事件,该事件最多可以注册一个事件处理程序:
private event EventHandler<EventArgs> e_Foo;
public event EventHandler<EventArgs> Foo {
add {
if (e_Foo != null && e_Foo.GetInvocationList().Any())
throw new InvalidOperationException("Only one event handler may be registered at a time.");
e_Foo += value;
}
remove {
e_Foo -= value;
}
}
private void OnFoo() {
if (e_Foo != null)
e_Foo(this, EventArgs.Empty);
}
- 有没有更好的办法?
- 有什么办法可以将它包装在一个类中,这样我就不必复制和粘贴这么多代码了?