Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч
Download 2.46 Mb.
|
Язык программирования 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: |
ma'muriyatiga murojaat qiling