Problemi con, o le migliori pratiche per, il passaggio di dati indietro attraverso EventArgs?
-
12-09-2019 - |
Domanda
Ho una classe non-GUI che genera eventi per quello che sta facendo (che sono a loro volta utilizzato da un modulo per visualizzare all'utente il progresso).
Uno degli eventi è un AboutToDoSomethingDestructiveEvent
. Ora vogliamo avere visualizzare il modulo di una finestra di dialogo per l'utente quando AboutToDoSomethingDestructiveEvent
è sollevato, chiedendo loro se vorrebbero SomethingDestructive
per accadere. Se selezionano no, allora avremmo impostare un valore sul EventArgs
del cliente e la forma originale leggevamo che il valore e passare a fare SomethingDestructive
.
È questo un uso corretto di Eventi e EventArgs
? Ci sono problemi con questo approccio? Ci sono delle migliori pratiche per fare questo genere di cose?
Soluzione
L'approccio è così buono c'è anche una classe in .NET Framework per questo: CancelEventArgs
Altri suggerimenti
Il modo in cui si sta pensando è il modo corretto di farlo. L'evento Console.CancelKeyPress è essenzialmente la stessa cosa.
Questo è un approccio corretto, fino a quando avete i vostri propri EventArgs, che ereditano da System.EventArgs. E 'molto comune, il miglior esempio mi viene in mente è in PostSharp con l'FlowBehavior.