Проблемы с передачей данных через Eventargs или лучшие практики?
У меня есть класс без GUI, который генерирует события относительно того, что он делает (которые, в свою очередь, используются формой для отображения пользователю прогресса).
Одним из событий является AboutToDoSomethingDestructiveEvent
, Теперь мы хотим, чтобы форма отображала диалог для пользователя, когда AboutToDoSomethingDestructiveEvent
поднят, спрашивая их, если они хотели бы SomethingDestructive
произойдет. Если они выберут "нет", мы установим значение для клиента EventArgs
и оригинальная форма будет читать это значение, а затем пропустить делать SomethingDestructive
,
Это правильное использование событий и EventArgs
? Есть ли проблемы с этим подходом? Есть ли лучшие практики для подобных вещей?
3 ответа
Подход настолько хорош, что в.NET Framework даже есть класс для этого: CancelEventArgs
То, как вы думаете, является правильным способом сделать это. Событие Console.CancelKeyPress - это одно и то же.
Это правильный подход, если у вас есть собственные EventArgs, которые наследуются от System.EventArgs. Это очень распространенный, лучший пример, который я могу придумать, - это PostSharp с FlowBehavior.