Я использую класс, который пересылает события в С#. Мне было интересно, есть ли способ сделать это требует меньше накладных расходов кода.
Вот пример того, что у меня до сих пор.
class A
{
public event EventType EventA;
}
class B
{
A m_A = new A();
public event EventType EventB;
public B()
{
m_A.EventA += OnEventA;
}
public void OnEventA()
{
if( EventB )
{
EventB();
}
}
}
Класс A вызывает исходное событие. Класс B пересылает его как EventB (это, по сути, одно и то же событие). Класс A скрыт от других модулей, поэтому они не могут напрямую подписаться на EventA.
То, что я пытаюсь сделать, - это сократить накладные расходы кода в классе B для пересылки события, так как обычно нет реальной обработки событий в классе B. Также у меня будет несколько разных событий, поэтому потребуется написать много методов OnEvent() в классе B, которые служат только для пересылки событий.
Можно ли автоматически связать EventA с EventB каким-то образом, поэтому у меня было бы что-то вроде этого:
class B
{
A m_A = new A();
public event EventType EventB;
public B()
{
m_A.EventA += EventB; // EventA automatically raises EventB.
}
}
Я использую компилятор С# 2.0.