通过eventargs传递数据的问题或最佳实践?

时间:2009-12-03 18:13:12

标签: c# .net user-interface eventargs

我有一个非GUI类,它会生成有关它正在做什么的事件(这些事件又被表单用来向用户显示进度)。

其中一个事件是AboutToDoSomethingDestructiveEvent。现在我们希望在AboutToDoSomethingDestructiveEvent引发时让表单向用户显示一个对话框,询问他们是否希望SomethingDestructive发生。如果他们选择否,那么我们会在客户EventArgs上设置一个值,原始表单会读取该值,然后跳过SomethingDestructive

这是对事件和EventArgs的正确使用吗?这种方法有问题吗?做这种事有什么最佳做法吗?

3 个答案:

答案 0 :(得分:3)

方法非常好,.NET Framework中甚至还有一个类:CancelEventArgs

答案 1 :(得分:1)

您的思维方式是正确的方法。 Console.CancelKeyPress事件基本上是一样的。

Console.CancelKeyPress

答案 2 :(得分:1)

这是一种正确的方法,只要您拥有自己的EventArgs,它们继承自System.EventArgs。这是非常常见的,我能想到的最好的例子是使用FlowBehavior的PostSharp。