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

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

Ссылки на внешние библиотеки
Реализация членов интерфейса на Visual Basic .NET
Полиморфизм
Конфигурирование защиты по правам доступа к коду
Настройка трассировочных переключателей
Преобразование типов
Создание формируемых элементов управления
Замещение членов базового класса в Visual Basic .NET
Распространение приложений через Интернет
Применение объектов DataSet и обновление данных
Разделяемые сборки
Делегаты CTS
Строительные блоки .NET
Инкапсуляция
Свойства Font, Cursor и BackGroundlmage
| .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 | Делегаты. Регион сайта: Москва и Санкт-Петербург