RemoveHandlers в производном классе - PullRequest
2 голосов
/ 19 марта 2010

Я использую для установки WithEvents переменных на Nothing в Destuctor, потому что это «удалит» все обработчики, связанные с ключевым словом Handles. Будет ли это иметь тот же эффект для производных классов?

Class A
    Protected WithEvents _Foo as Button

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

    Public Sub Dispose(disposing as Boolean)
        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. Для большей ясности предположим, что кнопка _Foo происходит снаружи и живет больше, чем класс A.

1 Ответ

1 голос
/ 19 марта 2010

Да. Оператор _Foo = Nothing в производном классе изменит локальный защищенный локальный _Foo базового класса на ничто, удалив таким образом все обработчики событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...