最佳答案
在 C # 中不可能触发没有附加处理程序的事件。因此,在每次调用之前,有必要检查事件是否为空。
if ( MyEvent != null ) {
MyEvent( param1, param2 );
}
我想保持我的代码尽可能干净,并摆脱这些空检查。我认为它不会对性能产生太大影响,至少对我来说不会。
MyEvent( param1, param2 );
现在,我通过向每个事件手动添加一个空的内联处理程序来解决这个问题。这很容易出错,因为我需要记住这样做等等。
void Initialize() {
MyEvent += new MyEvent( (p1,p2) => { } );
}
是否有一种方法可以使用反射和一些 CLR 魔法为给定类的所有事件自动生成空处理程序?