我有一个MulticastDelegate
可以引用具有相同签名的多个(旧版)代表之一。例如:
public delegate void ObjectCreated(object sender, EventArgs args);
public delegate void ObjectDeleted(object sender, EventArgs args);
//...
然后使用这些委托来定义事件:
public event ObjectCreated ObjectWasCreated;
public event ObjectDeleted ObjectWasDeleted;
然后我有一个方法,它接受MulticastDelegate
我用来做一些常见检查的方法:
void DispatchEvent(MulticastDelegate handler, object sender, EventArgs args)
{
if (handler != null)
{
// ...
handler.DynamicInvoke(sender, args);
}
}
从定义事件的类的其他方法中调用它:
DispatchEvent(ObjectWasCreated, sender, args);
DispatchEvent(ObjectWasDeleted, sender, args);
有没有更简洁的方法来避免 DynamicInvoke?