Problemas con, o mejores prácticas para, pasar los datos de vuelta a través EventArgs?
-
12-09-2019 - |
Pregunta
Tengo una clase no GUI que genera eventos en cuanto a lo que está haciendo (que a su vez se utiliza por una forma de mostrar al usuario el progreso).
Uno de los eventos es una AboutToDoSomethingDestructiveEvent
. Ahora queremos tener la forma de la pantalla un cuadro de diálogo al usuario cuando se eleva AboutToDoSomethingDestructiveEvent
, preguntándoles si les gustaría SomethingDestructive
a suceder. Si se selecciona NO, entonces podríamos establecer un valor en el EventArgs
cliente y la forma original leeríamos ese valor y luego saltar haciendo SomethingDestructive
.
Es este un uso adecuado de Eventos y EventArgs
? ¿Hay problemas con este enfoque? ¿Hay mejores prácticas para hacer este tipo de cosas?
Solución
El enfoque es tan bueno hay incluso una clase de .NET Framework para esto: CancelEventArgs
Otros consejos
La forma en que está pensando es la forma correcta de hacerlo. El evento Console.CancelKeyPress es esencialmente la misma cosa.
Este es un enfoque adecuado, siempre y cuando usted tiene sus propios EventArgs, que están heredando de System.EventArgs. Es muy común, el mejor ejemplo que puedo pensar es en PostSharp con el FlowBehavior.