Создание Windows-приложений на основе Visual C#

         

Многообъектные делегаты


В коде Matem2 делегат Mydelegate и метод calculate имеют одинаковую сигнатуру в соответствии с общими правилами. Для обращения через делегат к методу используется переменная int chislo, не содержащая вводимых значений для вычислений. Мы использовали один экземпляр делегата для обращения к одному методу, причем для вычисления значения новой переменной мы каждый раз ее объявляли. Однако делегат может вмещать в себя несколько методов. Такой делегат называется многообъектным (множественным) — при обращении к нему он последовательно вызывает каждый метод.

Создайте новое консольное приложение. Назовите его Matem3. Рассмотрим листинг с комментариями этого приложения (результат — рис. 1.35):

Листинг 1.5.

(html, txt)

В языке С# вы уже сталкивались с сокращенной записью операторов, так, выражение x += y в развернутом виде означает x = x + y. Делегаты понимают синтаксис + и += , и поэтому в комментарии указывается развернутый вариант добавления методов. Делегаты понимают также операции – и –= для удаления вызовов методов из делегата.


Рис. 1.35.  Результат приложения Matem3



Содержание раздела