Пропустить событие из класса C через класс B в класс A
У меня есть класс A, который реализует большое количество экземпляров класса B.
Класс B инкапсулирует экземпляр класса C.
Класс вызывает события, которые должны обрабатываться классом A.
Класс A не должен знать о классе C.
Класс C передает статистические данные, основанные на характеристиках, которые затем необходимо объединить.
Как создать события в классе B и подключить их, чтобы класс A мог подписаться на события класса B и получать события из класса C?
Ответы
Ответ 1
Событие - это не что иное, как пара методов, которые переносят поле делегата. Вы можете переопределить стандартную реализацию методов добавления и удаления в ClassB
, чтобы передать значение прямо в событие в ClassC
:
public class ClassB
{
private ClassC m_C = new ClassC();
public event EventHandler MyEvent
{
add { m_C.MyEvent += value; }
remove { m_C.MyEvent -= value; }
}
}