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



         

Все вместе


А теперь давайте объединим все сказанное на практическом примере. Создайте консольное приложение и включите следующий фрагмент в первый (стартовый) модуль:

Module Modulel

Private WithEvents anEmployee As EmployeeWithEvents

Sub Main()

Dim tom As New EmployeeWithEvents("Tom". 100000)

anEmployee = tom

Console.WriteLine(tom.TheName & "has salary " & tom.Salary)

anEmployee.RaiseSalary(0.2D) ' Суффикс D - признак типа Decimal

Console.WriteLinettom.TheName & "still has salary " & tom.Salary)

Console.WritelineC'Please press the Enter key")

Console.ReadLine() End Sub End Module

Рис. 6.2. Автоматически сгенерированный код обработчика события

Теперь выберите в раскрывающемся списке метод anEmployee_SalarySecurityEvent. Исходный текст этого метода приведен ниже (для удобства чтения он разбит на несколько строк, а ключевая секция Handles выделена жирным шрифтом):

Public Sub anEmployee_SalarySecur1tyEvent(ByVal Sender As

Event_Handling_I.EmployeeWithEvents, ByValeAs System.EventArgs) Handles

anEmployee.SalarySecurityEverrt

End Sub

End Module

Обратите внимание на символ подчеркивания, добавленный VB .NET между именем переменной с ключевым словом WithEvents (anEmployee) и именем события (SalarySecurityEvent), — с ним обработчик внешне почти не отличается от процедур событий в VB6.

Также обратите внимание на идентификацию объекта Sender полным именем (в формате пространство_имен. имя_класса). Наличие дополнительных символов подчеркивания в пространстве имен объясняется тем, что пробелы в них не разрешены, поэтому VB .NET автоматически преобразует имя решения «Event Handling 1» в «Event_Handling_l» (рис. 6.3). Наконец, ключевое слово Handles сообщает исполнительной среде, какое событие обрабатывается этой процедурой.

Рис. 6.3. Окно свойств решения с обработкой событий

Чтобы пример стал более интересным, вместо простого вывода в консольное окно 'мы включим в процедуру события команду вызова диалогового окна:



Содержание  Назад  Вперед