C#事件处理程序
答
很可能得到所有用户的列表,可以覆盖添加 - 删除和 - 操作(+ =和 - =)如见于下面的代码事件:
private int count = 0;
public event EventHandler MyEvent {
add {
count++;
// TODO: store event receiver
}
remove {
count--;
// TODO: remove event receiver
}
}
答
您可以实现自己的事件添加/删除方法:通过调用GetInvocationList()
public class Foo
{
public int GetSubscriberCount()
{
var count = 0;
var eventHandler = this.CustomEvent;
if(eventHandler != null)
{
count = eventHandler.GetInvocationList().Length;
}
return count;
}
public event EventHandler CustomEvent;
}
答
private EventHandler _event;
public event EventHandler MyEvent
{
add
{
if (_event == null) _event = value;
_event += value;
}
remove
{
if (_event != null) _event -= value;
}
}