CancelEventArgs提供一个名为 Cancel 的属性,不同的事件处理程序可以设置它来告诉调用事件的对象是否应该继续执行取消操作。
似乎由于事件是多播委托(delegate),所以事件的简单引发可能会调用两个委托(delegate)。第一个将 Cancel 属性设置为 true,第二个将 Cancel 属性设置为 false。组件/框架“可取消”事件是否支持这些场景并逐个调用每个委托(delegate),并在每一步检查取消标志?引发此类事件的最佳做法是什么?是否只有一个 CancelEventArgs 实例传递给每个代表?是否使用单独的实例?
最佳答案
一个小实验很快表明他们使用了 1 个 Cancel 实例(可能是 EventArgs 对象)。
这有点像赌博,结果取决于附加事件处理程序的顺序。
在 CancelEventArgs 的特殊情况下,我认为正确的模式是将 Cancel 设置为 true 或保留它,因此顺序无关紧要。
关于c# - 处理程序覆盖 CancelEventArgs 上的 Cancel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603769/