Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Делегаты
8 февраля 2009

Делегаты — это особые классы, обеспечивающие работу событий. В сущности, де-
легат — это указатель на функцию, обеспечивающий контроль типов. Он позволяет
передавать ссылку на точку входа метода и исполнять этот метод без традиционно-
го явного вызова. При объявлении делегата указывают сигнатуру вызываемого им
метода и тип возвращаемого результата:
Visual Basic .NET
Public Delegate Function myDelegate(ByVal D As Double) As Integer
Visual C#
public delegate int myDelegate(dojble D):
В этом примере объявляется делегат ту Delegate, вызывающий методы, которые
возвращают результат типа Integer (int) и принимают в качестве параметра значение
типа Double (double). Чтобы воспользоваться делегатом, необходимо создать его эк-
земпляр с указанием метода, который он будет вызывать. В Visual C# этот метод
задают по имени, а в Visual Basic .NET применяют оператор AddressOf, который со
здает ссылку на адрес метода. Вот соответствующие примеры:
Visual Basic .NET
Это метод, который будет вызывать делегат.
Public Function ReturnInt(ByVal d As Double) As Integer
Реализация метода опущена,
End Function
Создать экземпляр делегата myDelegate,
который будет вызывать метод Returnlnt.
Dim aDelegate As New rnyDelegate(addressof Returnlnt)
Visual C#
// Это метод, который будет вызывать делегат.
public int Returnlnt(double D)
// Создать экземпляр делегата myDelegate,
// который будет вызывать метод Returnlnt.
public void amethodO
{
nyDelegate aDelegate = new myDelegate(Returnlnt):
.
При создании делегата для метода экземпляра в Visual C# необходимо инициа-
лизировать делегат внутри этого метода. Делегаты статических методов можно ини-
циализировать вне метода, который они вызывают.
После объявления и инициализации делегат можно вызывать, как обычную фун-
кцию, чтобы исполнить связанный с ним метод, например:
Visual Basic .NET
aDelegate(12345)
Visual C#
aDelegate(12345);
^ Как создать и вызвать делегат
I . Объявите делегат с сигнатурой, идентичной сигнатуре метода (или методов), для
вызова которого он будет использоваться.
2. Создайте экземпляр делегата, ссылающийся на метод с подходящей сигна гурой.
3. Вызывайте делегат в коде, ссылаясь на него по имени.

Теги: .NET

Статьи по теме:

Создание компонента DoughnutMachine
Получение доступа к членам базового класса
Всё новое - это хорошо забытое старое
Делегаты CTS
Создание производных элементов управления
Формирование запросов SQL во время выполнения
Конструирование меню во время разработки
Создание конфигурационного файла
Свойства BackColor, ForeColor и Text
Свойства, доступные только для чтения или только для записи
Объекты и члены
Развертывание приложений с помощью XCOPY
Оптимизация средствами компилятора
Применение объектов DataSet и обновление данных
Blend PDF with Silverlight
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Делегаты. Регион сайта: Москва и Санкт-Петербург