Проблемы с передачей данных через Eventargs или лучшие практики?

У меня есть класс без GUI, который генерирует события относительно того, что он делает (которые, в свою очередь, используются формой для отображения пользователю прогресса).

Одним из событий является AboutToDoSomethingDestructiveEvent, Теперь мы хотим, чтобы форма отображала диалог для пользователя, когда AboutToDoSomethingDestructiveEvent поднят, спрашивая их, если они хотели бы SomethingDestructive произойдет. Если они выберут "нет", мы установим значение для клиента EventArgs и оригинальная форма будет читать это значение, а затем пропустить делать SomethingDestructive,

Это правильное использование событий и EventArgs? Есть ли проблемы с этим подходом? Есть ли лучшие практики для подобных вещей?

3 ответа

Решение

Подход настолько хорош, что в.NET Framework даже есть класс для этого: CancelEventArgs

То, как вы думаете, является правильным способом сделать это. Событие Console.CancelKeyPress - это одно и то же.

Console.CancelKeyPress

Это правильный подход, если у вас есть собственные EventArgs, которые наследуются от System.EventArgs. Это очень распространенный, лучший пример, который я могу придумать, - это PostSharp с FlowBehavior.

Другие вопросы по тегам