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


* При перепечатке материалов ссылка на 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

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

Связывание, просмотр и фильтрация данных
Принципы разработки пользовательского интерфейса
Модификация и обновление данных
Реализация полиморфизма через наследование
Использование провайдеров дополнительных свойств
Редактор условий установки
Реализация обработчиков событий
Blend PDF with Silverlight
Создание формы
Стандартная система типов CTS
Создание составных элементов управления
Установка сборок в GAC
Параметризованные свойства
Вложенные элементы управления и контейнеры
Извлечение из сопутствующих сборок ресурсов, специфичных для культуры
| .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


     



Rambler's Top100

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

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