C# 使用不同的委托类型发布/订阅
我在我的应用程序中使用了一种简单的消息代理,插件可以注册以获得定制事件的通知。嗯。。像这样:C# 使用不同的委托类型发布/订阅,c#,C#,我在我的应用程序中使用了一种简单的消息代理,插件可以注册以获得定制事件的通知。嗯。。像这样: class MessageBroker { Dictionary<string,List<Delegate>> SubscribersToEvent; void SubscribeToEvent(string eventName, Delegate callback); object RaiseEvent(string eventName); } 而这
class MessageBroker
{
Dictionary<string,List<Delegate>> SubscribersToEvent;
void SubscribeToEvent(string eventName, Delegate callback);
object RaiseEvent(string eventName);
}
而这反过来又会调用订阅的方法
void CallbackToButton1_click(Buttton btn, string p1, int p2)
我解决了一个类似的问题,只需将字典作为附加参数传递给委托,该参数只保存该事件特定的所有属性。缺点是编译器不能强制所有参数都被传递,但它对我很有用,而且实际上从未引起任何问题。不要再发明轮子了 这是可以通过反射实现的,但要以速度为代价。
void CallbackToButton1_click(Buttton btn, string p1, int p2)