我有一个非GUI类,它会生成有关它正在做什么的事件(这些事件又被表单用来向用户显示进度)。
其中一个事件是AboutToDoSomethingDestructiveEvent
。现在我们希望在AboutToDoSomethingDestructiveEvent
引发时让表单向用户显示一个对话框,询问他们是否希望SomethingDestructive
发生。如果他们选择否,那么我们会在客户EventArgs
上设置一个值,原始表单会读取该值,然后跳过SomethingDestructive
。
这是对事件和EventArgs
的正确使用吗?这种方法有问题吗?做这种事有什么最佳做法吗?
答案 0 :(得分:3)
方法非常好,.NET Framework中甚至还有一个类:CancelEventArgs
答案 1 :(得分:1)
您的思维方式是正确的方法。 Console.CancelKeyPress事件基本上是一样的。
答案 2 :(得分:1)
这是一种正确的方法,只要您拥有自己的EventArgs,它们继承自System.EventArgs。这是非常常见的,我能想到的最好的例子是使用FlowBehavior的PostSharp。