有没有办法在 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
您可以在 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)
orSomeEvent -= new EventHandler(Foo)
并且适当的事件处理程序将自动添加/删除。
您可以使用 + 和 - 运算符组合委托
如果您只是想摆脱一些打字,您可以这样做
SomeEvent += MyMethod;