有沒有辦法在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)