2015-09-21 5 views
2
Class BaseClass 
    Public Event MyEvent(sender As Object, e As EventArgs) 
End Class 
Class DerivedClass 
    Inherits BaseClass 
    Sub DerivedClassEventHandler(sender As Object, e As EventArgs) Handles Me.MyEvent 
     'Do something here 
    End Sub 
End Class 

Есть ли разница между выше и использованием Handles MyBase.MyEvent, согласно guidance here под заголовком Обработка событий наследуются от базового класса?Ручки Me.Event против Ручки MyBase.Event

ответ

1

С помощью этого простого примера есть небольшая разница. Вы можете утверждать, что, используя Handles MyBase..., для будущих читателей кода более понятно, откуда это происходит.

Потенциальная причина предпочтения того или иного человека заключается в (необычной) ситуации создания события с тем же именем в производном классе - разница между и MyBase позволяет уточнить, обработка:

Class BaseClass 
    Public Event MyEvent(sender As Object, e As EventArgs) 
End Class 
Class DerivedClass 
    Inherits BaseClass 

    Public Shadows Event MyEvent(sender As Object, e As SomeOtherEventArgs) 

    Sub EventHandler(sender As Object, e As EventArgs) Handles MyBase.MyEvent 

    End Sub 

    Sub EventHandler(sender As Object, e As SomeOtherEventArgs) Handles Me.MyEvent 

    End Sub 
End Class