Иллюстрированный самоучитель по VB.NET

       

Делегаты и события


Мы рассмотрели разнообразные примеры использования делегатов, однако ни один из них не имел отношения к обработке событий. Впрочем, связь между делегатами и событиями в VB .NET весьма проста. При каждом использовании сокращенного синтаксиса обработки событий, описанного в первой половине главы, VB .NET незаметно определяет класс делегата для обработки события, а команда AddressOf создает экземпляр делегата для этого обработчика. Например, следующие две строки эквивалентны (EventHandler — имя неявно определяемого делегата):

AddHandler Buttonl.Click.AddressOf Me.Buttonl_Click

AddHandler Buttonl.Click.New EventHandler(AddressOf Buttonl Click)

В сущности, каждое событие соответствует делегату следующего вида:

Public Delegate Event (sender As Object.evt As EventArgs)

Вызов RaiseEvent просто приводит к вызову Invoke для автоматически сгенерированного делегата.



Содержание раздела