有没有办法在C#中重载事件+ =和 - =操作符?我想要做的是接收一个事件监听器并注册它到不同的事件。因此,像这样:重载+ =事件操作符
SomeEvent += new Event(EventMethod);
然后,而不是连接到SomeEvent的,它实际上连接到不同的事件:
DifferentEvent += (the listener above);
AnotherDiffEvent += (the listener above);
感谢
有没有办法在C#中重载事件+ =和 - =操作符?我想要做的是接收一个事件监听器并注册它到不同的事件。因此,像这样:重载+ =事件操作符
SomeEvent += new Event(EventMethod);
然后,而不是连接到SomeEvent的,它实际上连接到不同的事件:
DifferentEvent += (the listener above);
AnotherDiffEvent += (the listener above);
感谢
这不是真正的超载,但这里是你怎么做:
public event MyDelegate SomeEvent
{
add
{
DifferentEvent += value;
AnotherDiffEvent += value;
}
remove
{
DifferentEvent -= value;
AnotherDiffEvent-= value;
}
}
关于此问题的更多信息switchonthecode.com
如果你只是希望得到一些打字的时候,你可以做到这一点
SomeEvent += MyMethod;
可以使用custom event accessors做到这一点在C#。
public EventHandler DiffEvent;
public EventHandler AnotherDiffEvent;
public event EventHandler SomeEvent
{
add
{
DiffEvent += value;
AnotherDiffEvent += value;
}
remove
{
DiffEvent -= value;
AnotherDiffEvent -= value;
}
}
这意味着你可以简单地调用SomeEvent += new EventHandler(Foo)
或SomeEvent -= new EventHandler(Foo)
,并且适当调整事件处理程序将被添加/自动删除。
您可以结合使用委托+和 - 运营商
见How to: Combine Delegates (Multicast Delegates)(C# Programming Guide)