假设我有一个事件由各种类订阅。假设A类还订阅了表单上的,B类也订阅了。
现在我希望只有其中一个类处理运行时表单触发的事件。也就是说,假设A类先处理,我尝试使用e.Handled = true,但在这种情况下没有帮助。
如果A类已经处理了来自表单的事件,我不希望B类再次处理它,我目前有一个解决方法,其中涉及在A和B内设置一些公共标志,但从软件工程原则上讲,这并不是个好主意。我希望各个类尽可能地独立,但同时应该知道一个事件已经被处理过,不需要再次处理。
这是否可能?
是的,可以实现这一点,需要检查 e.Handled == true,然后 .NET 会处理剩余的部分 :-)
现在我希望只有其中一个类处理运行时表单触发的事件。也就是说,假设A类先处理,我尝试使用e.Handled = true,但在这种情况下没有帮助。
如果A类已经处理了来自表单的事件,我不希望B类再次处理它,我目前有一个解决方法,其中涉及在A和B内设置一些公共标志,但从软件工程原则上讲,这并不是个好主意。我希望各个类尽可能地独立,但同时应该知道一个事件已经被处理过,不需要再次处理。
这是否可能?
是的,可以实现这一点,需要检查 e.Handled == true,然后 .NET 会处理剩余的部分 :-)