Similar presentations:
C#_Делегаты
1.
С#Делегаты
2.
ДелегатыДелегат - ссылка на метод
Делегат - типобезопасный
указатель на функцию
Делегат - переменная
ссылочного типа, которая
может хранить ссылку на
метод
3.
Делегаты[модификатор доступа] delegate тип _ данных ИмяДелегата(параметры);
public delegate void bigD(int Parametr0);
public delegate int smallD();
public delegate double singleD(bool flag);
4.
Делегаты5.
ДелегатыПри объявлении делегата компилятор генерирует
класс, производный от System.MulticastDelegate, из
этого следует, что объявленный делегат
автоматически
становится классом.
6.
ДелегатыСоздать калькулятор используя делегаты
Подсказка: 1) создаём функции, которые
возвращают результат произведения;
2) передаём адрес делегату
3) выводим на консоль результат
выполнения делегата
7.
Групповые делегатыCalcDelegate delAll = calc.Add;
// групповое преобразование методов
CalcDelegate delAll += calc.Sub;
delAll.GetInvocationList()
foreach(CalcDelegate item in
delAll.GetInvocationList())
{
WriteLine(item(34.3,23.4)
}
8.
Обобщённые делегаты[модификатор доступа] delegate тип _ возврата
ИмяДелегата<типы _ параметров> (параметры);
public delegate T AddDelegate <T>(T x, T y)
public delegate double AddDelegate<T, Y>(T x, Y
y);
9.
ЗаданиеСоздать класс Студентов с именем и фамилией.
Создать функцию для вывода полного имени студента.
Создать список студентов(>=5), заполнить.
Вывести полное имя каждого студента
Подсказка: списокСтудентов.ForEach(функция);
10.
ЗаданиеРазработайте программу, которая моделирует музыкальную систему, позволяющую воспроизводить
разные жанры музыки и выполнять различные действия при воспроизведении.
Объявите делегат MusicAction, который принимает название и жанр композиции.
Создайте класс MusicPlayer, который содержит:
○ событие OnMusicPlay типа MusicAction.
○ метод PlayMusic(string songName, string genre), который:
■ выводит сообщение, что выбран жанр и название песни
■ вызывает делегат OnMusicPlay, передавая название и жанр песни
В Main создайте экземпляр MusicPlayer.
Подпишитесь к событию OnMusicPlay двумя разными методами:
○ один выводит сообщение о воспроизведении песни
○ другой выводит информацию о жанре музыки
Вызовите метод PlayMusic, передав название песни и жанр.
programming