Предположим, у меня есть 2 класса, класс А и класс В. Объект A (класса A) содержит некоторые объекты B (класса B). B имеют событие, а объект A подписывается делегатом, который выполняется, когда событие (любого из этих объектов B) создается.Использование (отправитель объекта) в делегате, подписанном на событие другого объекта
private void fooEventHandler(object sender, EventArgs e)
{
...
}
После делать что-то в fooEventHandler (что должно быть сделано внутри), я хочу, чтобы сигнализировать объекта B, который вызвал событие результат того, что я сделал в fooEventHandler. Поэтому я делаю следующее:
private void fooEventHandler(object sender, EventArgs e)
{
...
if (allOK)
((classB)sender).isOK();
else
((classB) sender).isNotOK();
}
Так что я на самом деле с помощью отправителя вызова определенного метода на objectB после роста события. Я делаю все это, чтобы не переходить к objectB (в его конструкторе) некоторые объекты ObjectA, которые с дизайнерской точки зрения не должны быть в объекте B. Является ли это разумным способом решения проблемы? Обычно ли это используется (отправитель объекта) таким образом?
isNotOK(). В качестве примера рассмотрим делегат CancelEventHandler. –
Хм .. может быть, вы немного более конкретны? Я просматриваю CancelEventHandler, но я не понимаю, что вы имеете в виду ... –
Если это ваше событие, лучше определить обработчик, который имеет класс B как аргумент вместо объекта – Vadim