Проблемы с передачей данных через Eventargs или лучшие практики? - PullRequest
0 голосов
/ 03 декабря 2009

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

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

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

Ответы [ 3 ]

3 голосов
/ 03 декабря 2009

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

1 голос
/ 03 декабря 2009

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

1 голос
/ 03 декабря 2009

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

Console.CancelKeyPress

...