Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


Download 2.46 Mb.
bet53/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   49   50   51   52   53   54   55   56   ...   91
Bog'liq
Язык программирования C#

12.3. Создание цепочки вызовов

Удобство использования делегатов состоит также в возможности связать делегат с несколькими методами и вызывать их все при помощи однократного вызова делегата.


Для добавления нового метода к списку вызовов делегата используется оператор +=.
Для удаления метода из списка вызовов делегата используется обратный ему оператор -=. Их использование аналогично использованию этих же операторов для чисел.

Создадим тестовый класс, содержащий два метода с одинаковой сигнатурой: один статический и экземплярный. Эти методы мы далее будем вызывать при помощи одного делегата.


class MulitpleClass


{
public void InstanceMethod()
{
System.Console.WriteLine("Вызвается сначало InstanceMethod().");
}

static public void StaticMethod()


{
System.Console.WriteLine("Затем вызывается StaticMethod().");
}
}
Лист. 3.9

Теперь создадим делегат, не принимающий и не возвращающий значений. Он имеет ту же сигнатуру что и методы, определенные в классе MulitpleClass.


delegate void Del();


Лист. 3.10

Теперь создадим точку входа для нашего приложения. В ней мы продемонстрируем вызов функций класса MulitpleClass с помощью делегата.


class Program


{
static void Main(string[] args)
{
MulitpleClass sc = new MulitpleClass();

Del d = sc.InstanceMethod;


d += MulitpleClass.StaticMethod;

d();
}


}
Лист. 3.11

В этом примере сначала создается объект sc класса MulitpleClass затем его экземплярным методом InstanceMethod инициализируется делегат d. Далее к вызовам этого делегата добавляется метод StaticMethod. И затем оба этих метода вызываются.


В результате получаем:

Вызвается сначало InstanceMethod().


Затем вызывается StaticMethod().
Вывод. 3.2

Для добавления метода к списку вызовов делегата используется оператор + , а для удаления метода из списка оператор –





Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   ...   49   50   51   52   53   54   55   56   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling