是否可以在C#中订阅事件订阅?
如果我有这样的事件:
public delegate void MyEventHandler(object sender, EventArgs e); public event MyEventHandler MyEvent;
并添加这样的事件处理程序:
MyEvent += MyEventHandlerMethod;
……那么有可能以某种方式注册吗? 换句话说 – 是否可能有类似的东西:
MyEvent.OnSubscribe += MySubscriptionHandler;
与自动实现的属性类似,默认情况下也会自动实现事件。
您可以按如下方式展开event
声明:
public event MyEventHandler MyEvent { add { ... } remove { ... } }
例如,请参阅如何:使用字典存储事件实例(C#编程指南)
请参阅C#4中的事件进行一些改革,第一部分:锁定 C#3和C#4之间自动实现事件的方式。
可以专门声明事件访问器,即添加和删除访问器。
这样做可以在添加新事件处理程序时执行自定义逻辑。
定义事件时,实际上可以使用较长的格式在人们附加事件或从事件中删除自己时执行更多代码。
查看添加和删除关键字的信息。
我想,你正在寻找事件访问者。 如何自定义对订阅者的引用。 这是你如何做到的
public class TestClass { private event EventHandler UnderlyingEvent; public event EventHandler TestEvent { add { UnderlyingEvent += value; } remove { UnderlyingEvent -= value; } } }
有关更多信息,请访问此文章
如果你声明自定义事件,就像这个伪代码一样 :
class MyClass { public event EventHandler MyEvent { add { //someone subscribed to this event ! } remove { //someone unsubscribed from this event ! } } ... }