Перегрузить оператор события + = - PullRequest
6 голосов
/ 15 июля 2009

Есть ли способ перегрузить операторы событий + = и - = в C #? Я хочу взять прослушиватель событий и зарегистрировать его для различных событий. Так что-то вроде этого:

SomeEvent += new Event(EventMethod);

Затем вместо присоединения к SomeEvent он фактически присоединяется к различным событиям:

DifferentEvent += (the listener above);
AnotherDiffEvent += (the listener above);

Спасибо

Ответы [ 4 ]

21 голосов
/ 15 июля 2009

Это не слишком перегружает, но вот как вы это делаете:

public event MyDelegate SomeEvent
{
    add
    {
        DifferentEvent += value;
        AnotherDiffEvent += value;
    }
    remove
    {
        DifferentEvent -= value;
        AnotherDiffEvent-= value;
    }
}

Подробнее об этом на switchonthecode.com

6 голосов
/ 15 июля 2009

Вы можете сделать это в 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), и соответствующие обработчики событий будут добавлены / удалены автоматически.

0 голосов
/ 15 июля 2009
0 голосов
/ 15 июля 2009

Если вы просто хотите избежать печатания, вы можете сделать это

SomeEvent += MyMethod;
...