如何处理扩展类中的事件?

时间:2017-03-07 14:53:17

标签: .net vb.net class inheritance event-handling

当扩展一个类时,如何在基类的某个事件上设置代码的正确方法是什么?

如果以这种方式处理基类事件:

Public Class Class2
    Inherits Class1

    Private Sub MyBase_MyEvent(sender as object, e as eventargs) Handles MyBase.MyEvent
        ' do stuff here
    End Sub
End Class

或者应该覆盖事件调用者子?

Public Class Class2
    Inherits Class1

    Protected Overrides Sub OnMyEvent(e as EventArgs)
        MyBase.OnMyEvent(e)
        ' do stuff here
    End Sub
End Class

非常感谢

1 个答案:

答案 0 :(得分:0)

我在https://softwareengineering.stackexchange.com/a/343769/234737得到并回答并在此发布,以便记录并帮助其他人提出同样的问题:

  

两种选择都很好而且很常见。最大的区别是:使用选项1,您无法确定处理程序的触发顺序,而使用第二个选项,您可以决定是否在重写实现之前或之后调用MyBase.OnMyEvent。