SwD*_*n81 6 c# events overloading operator-overloading event-listener
有没有办法在C#中重载事件+ =和 - =运算符?我想做的是拿一个事件监听器并将其注册到不同的事件.所以像这样:
SomeEvent += new Event(EventMethod);
Run Code Online (Sandbox Code Playgroud)
然后它不是附加到SomeEvent,而是实际上附加到不同的事件:
DifferentEvent += (the listener above);
AnotherDiffEvent += (the listener above);
Run Code Online (Sandbox Code Playgroud)
谢谢
Dyk*_*kam 21
这不是真的超载,但这是你如何做到的:
public event MyDelegate SomeEvent
{
add
{
DifferentEvent += value;
AnotherDiffEvent += value;
}
remove
{
DifferentEvent -= value;
AnotherDiffEvent-= value;
}
}
Run Code Online (Sandbox Code Playgroud)
有关这方面的更多信息,请访问switchonthecode.com
您可以使用自定义事件访问器在C#中执行此操作.
public EventHandler DiffEvent;
public EventHandler AnotherDiffEvent;
public event EventHandler SomeEvent
{
add
{
DiffEvent += value;
AnotherDiffEvent += value;
}
remove
{
DiffEvent -= value;
AnotherDiffEvent -= value;
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着您可以简单地调用SomeEvent += new EventHandler(Foo)
或SomeEvent -= new EventHandler(Foo)
自动添加/删除适当的事件处理程序.