开发者

RemoveHandlers in the derived class

I use to set WithEvents variables to Nothing in Destuctor, because this will "Remove" all the Handlers associated with Handles keyword. Will this have the same effect for derivated classes?

Class A
    Protected WithEvents _Foo as Button

    Private Sub _Foo_Click Handles _Foo.Click
        ' ... some Click action '
    End Sub

    Public Sub Dispose(disposing as Boo开发者_开发百科lean)
        If disposing then _Foo = Nothing ' remove handler _Foo_Click '
    End Sub
End Class

Class B
    Inherits A

    Private Sub _Foo_Move Handles _Foo.Move
        ' ... some Move action '
    End Sub

    ' ????? will or NOT remove OR handler _Foo_Move the base Dispose??'
    Public Overrides Sub Dispose(disposing as Boolean)           
        'If disposing then _Foo = Nothing '
        MyBase.Dispose(disposing)
    End Sub
End Class

PS. For more clarity, suppose that _Foo button comes from exterior and lives more that the A class.


Yes. The _Foo = Nothing statement in the derivated class will change the base class' protected local _Foo to nothing, thus removing all event handlers.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜