🗊Презентация Делегаты, события, анонимные методы

Нажмите для полного просмотра!
Делегаты, события, анонимные методы, слайд №1Делегаты, события, анонимные методы, слайд №2Делегаты, события, анонимные методы, слайд №3Делегаты, события, анонимные методы, слайд №4Делегаты, события, анонимные методы, слайд №5Делегаты, события, анонимные методы, слайд №6Делегаты, события, анонимные методы, слайд №7Делегаты, события, анонимные методы, слайд №8Делегаты, события, анонимные методы, слайд №9Делегаты, события, анонимные методы, слайд №10Делегаты, события, анонимные методы, слайд №11Делегаты, события, анонимные методы, слайд №12Делегаты, события, анонимные методы, слайд №13Делегаты, события, анонимные методы, слайд №14Делегаты, события, анонимные методы, слайд №15Делегаты, события, анонимные методы, слайд №16Делегаты, события, анонимные методы, слайд №17Делегаты, события, анонимные методы, слайд №18Делегаты, события, анонимные методы, слайд №19Делегаты, события, анонимные методы, слайд №20Делегаты, события, анонимные методы, слайд №21Делегаты, события, анонимные методы, слайд №22

Содержание

Вы можете ознакомиться и скачать презентацию на тему Делегаты, события, анонимные методы. Доклад-сообщение содержит 22 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Делегаты, события, анонимные методы. 
Делегаты лекция №15
Описание слайда:
Делегаты, события, анонимные методы. Делегаты лекция №15

Слайд 2





Делегаты
Делегат — это вид класса, предназначенный для хранения ссылок на методы.
Описание слайда:
Делегаты Делегат — это вид класса, предназначенный для хранения ссылок на методы.

Слайд 3





Использование делегатов
Делегат, как и любой другой класс, можно передать в качестве параметра, а затем вызвать инкапсулированный в нем метод.
Делегаты используются для поддержки событий, а также как самостоятельная конструкция языка.
Описание слайда:
Использование делегатов Делегат, как и любой другой класс, можно передать в качестве параметра, а затем вызвать инкапсулированный в нем метод. Делегаты используются для поддержки событий, а также как самостоятельная конструкция языка.

Слайд 4





Описание делегатов
[ атрибуты ] [ спецификаторы ] delegate тип имяделегата ( [ параметры ] )
public delegate void D ( int i );
Описание слайда:
Описание делегатов [ атрибуты ] [ спецификаторы ] delegate тип имяделегата ( [ параметры ] ) public delegate void D ( int i );

Слайд 5





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

Слайд 6





Почему делегат тип данных
Делегат, как и всякий класс, представляет собой тип данных. Его базовым классом является класс System.Delegate. 
Наследовать от делегата нельзя.
Описание слайда:
Почему делегат тип данных Делегат, как и всякий класс, представляет собой тип данных. Его базовым классом является класс System.Delegate. Наследовать от делегата нельзя.

Слайд 7





Использование делегатов
Делегаты применяются в основном для следующих целей:
получения возможности определять вызываемый метод не при компиляции, а динамически во время выполнения программы;
обеспечения связи между объектами по типу ≪источник — наблюдатель≫;
создания универсальных методов, в которые можно передавать другие методы;
поддержки механизма обратных вызовов.
Описание слайда:
Использование делегатов Делегаты применяются в основном для следующих целей: получения возможности определять вызываемый метод не при компиляции, а динамически во время выполнения программы; обеспечения связи между объектами по типу ≪источник — наблюдатель≫; создания универсальных методов, в которые можно передавать другие методы; поддержки механизма обратных вызовов.

Слайд 8


Делегаты, события, анонимные методы, слайд №8
Описание слайда:

Слайд 9


Делегаты, события, анонимные методы, слайд №9
Описание слайда:

Слайд 10





Вызов цепочки методов
При вызове последовательности методов с помощью делегата необходимо учитывать следующее:
• сигнатура методов должна в точности соответствовать делегату;
• методы могут быть как статическими, так и обычными методами класса;
• каждому методу в списке передается один и тот же набор параметров;
• если параметр передается по ссылке, изменения параметра в одном методе отразятся на его значении при вызове следующего метода;
Описание слайда:
Вызов цепочки методов При вызове последовательности методов с помощью делегата необходимо учитывать следующее: • сигнатура методов должна в точности соответствовать делегату; • методы могут быть как статическими, так и обычными методами класса; • каждому методу в списке передается один и тот же набор параметров; • если параметр передается по ссылке, изменения параметра в одном методе отразятся на его значении при вызове следующего метода;

Слайд 11





Вызов цепочки методов
• если параметр передается с ключевым словом out или метод возвращает значение, результатом выполнения делегата является значение, сформированное последним из методов списка (в связи с этим рекомендуется формировать списки только из делегатов, имеющих возвращаемое значение типа voi d);
если в процессе работы метода возникло исключение, не обработанное в том же методе, последующие методы в списке не выполняются, а происходит поиск обработчиков в объемлющих делегат блоках;
попытка вызвать делегат, в списке которого нет ни одного метода, вызывает генерацию исключения System. Null Ref erenceExcepti on.
Описание слайда:
Вызов цепочки методов • если параметр передается с ключевым словом out или метод возвращает значение, результатом выполнения делегата является значение, сформированное последним из методов списка (в связи с этим рекомендуется формировать списки только из делегатов, имеющих возвращаемое значение типа voi d); если в процессе работы метода возникло исключение, не обработанное в том же методе, последующие методы в списке не выполняются, а происходит поиск обработчиков в объемлющих делегат блоках; попытка вызвать делегат, в списке которого нет ни одного метода, вызывает генерацию исключения System. Null Ref erenceExcepti on.

Слайд 12





Паттерн ≪наблюдатель≫
Для обеспечения гибкой, динамической связи между объектами во время выполнения программы применяется следующая стратегия. Объект, называемый источником, при изменении своего состояния, которое может представлять интерес для других объектов, посылает им уведомления. Эти объекты называются наблюдателями. Получив уведомление, наблюдатель опрашивает источник, чтобы синхронизировать с ним свое состояние.
Описание слайда:
Паттерн ≪наблюдатель≫ Для обеспечения гибкой, динамической связи между объектами во время выполнения программы применяется следующая стратегия. Объект, называемый источником, при изменении своего состояния, которое может представлять интерес для других объектов, посылает им уведомления. Эти объекты называются наблюдателями. Получив уведомление, наблюдатель опрашивает источник, чтобы синхронизировать с ним свое состояние.

Слайд 13





Код
Описание слайда:
Код

Слайд 14


Делегаты, события, анонимные методы, слайд №14
Описание слайда:

Слайд 15





Операции над делегатами
Делегаты можно сравнивать на равенство и неравенство. 
Два делегата равны, если они оба не содержат ссылок на методы или если они содержат ссылки на одни и те же методы в одном и том же порядке.
Описание слайда:
Операции над делегатами Делегаты можно сравнивать на равенство и неравенство. Два делегата равны, если они оба не содержат ссылок на методы или если они содержат ссылки на одни и те же методы в одном и том же порядке.

Слайд 16





Операции над делегатами
С делегатами одного типа можно выполнять операции простого и сложного присваивания, например:
Del dl = new Del( o1.Do ): // o1.Do
Del d2 = new Del( o2.Do ); // o2.Do
Del d3 = dl + d2; // o1.Do и o2.Do
d3 += d1 : // o1.Do. o2.Do и o1.Do
d3 -= d2; // 	o1.Do и o1.Do
Описание слайда:
Операции над делегатами С делегатами одного типа можно выполнять операции простого и сложного присваивания, например: Del dl = new Del( o1.Do ): // o1.Do Del d2 = new Del( o2.Do ); // o2.Do Del d3 = dl + d2; // o1.Do и o2.Do d3 += d1 : // o1.Do. o2.Do и o1.Do d3 -= d2; // o1.Do и o1.Do

Слайд 17





Immutable delegate
Делегат, как и строка string, является неизменяемым типом данных, поэтому при любом изменении создается новый экземпляр, а старый впоследствии удаляется сборщиком мусора.
Описание слайда:
Immutable delegate Делегат, как и строка string, является неизменяемым типом данных, поэтому при любом изменении создается новый экземпляр, а старый впоследствии удаляется сборщиком мусора.

Слайд 18





Передача делегатов в методы
Поскольку делегат является классом, его можно передавать в методы в качестве параметра. Таким образом обеспечивается функциональная параметризация: в метод можно передавать не только различные данные, но и различные функции их обработки.
Описание слайда:
Передача делегатов в методы Поскольку делегат является классом, его можно передавать в методы в качестве параметра. Таким образом обеспечивается функциональная параметризация: в метод можно передавать не только различные данные, но и различные функции их обработки.

Слайд 19


Делегаты, события, анонимные методы, слайд №19
Описание слайда:

Слайд 20





Упрощенная форма записи
Анонимный метод
Описание слайда:
Упрощенная форма записи Анонимный метод

Слайд 21





Обратный вызов(CallBack)
Он представляет собой вызов функции, передаваемой в другую функцию в качестве параметра.
Описание слайда:
Обратный вызов(CallBack) Он представляет собой вызов функции, передаваемой в другую функцию в качестве параметра.

Слайд 22





Домашнее задание
Пример:
Fun[] masFun = new Fun[3];
masFun[1] = Math.Cos;
masFun[1](0,9);
Изменить лабораторную работу 8. Таким образом чтобы вызов пункта меню был через массив делегатов, инициализированных методами меню.
Описание слайда:
Домашнее задание Пример: Fun[] masFun = new Fun[3]; masFun[1] = Math.Cos; masFun[1](0,9); Изменить лабораторную работу 8. Таким образом чтобы вызов пункта меню был через массив делегатов, инициализированных методами меню.



Похожие презентации
Mypresentation.ru
Загрузить презентацию