Презентация Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5) онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 65 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5)
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:65 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:2.34 MB
- Просмотров:56
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№6 слайд
![Перегрузка операторов](/documents_6/9f51cdc9162147fe12b496b280d11512/img5.jpg)
Содержание слайда: Перегрузка операторов сравнения
Операторы сравнения необходимо перегружать попарно
< и >
<= и >=
== и !=
При перегрузке операторов == и != настоятельно рекомендуется переопределять (override) метод Equals
Вместе с методом Equals необходимо переопределить также метод GetHashCode
№7 слайд
![Пример перегрузки оператора](/documents_6/9f51cdc9162147fe12b496b280d11512/img6.jpg)
Содержание слайда: Пример перегрузки оператора ++
public class Point2D{
public float x, y;
float xTmp, yTmp;
public Point2D(){
x = 0;
y = 0;
xTmp = 0;
yTmp = 0;
}
public static Point2D operator++(Point2D par){
// Фактическим координатам присваиваются
//старые значения.
par.x = par.xTmp++;
par.y = par.yTmp++;
return par;
}
public float getTempX(){
return xTmp;
}
public float getTempY() {
return yTmp;
}
}
№13 слайд
![Сценарий Атомная](/documents_6/9f51cdc9162147fe12b496b280d11512/img12.jpg)
Содержание слайда: Сценарий: Атомная электростанция
Проблема
Как реагировать на изменения температуры на атомной электростанции
Если температура активной зоны реактора станет выше определенной температуры, необходимо включить охлаждающие насосы
Возможные решения
Все охлаждающие насосы должны постоянно отслеживать температуру активной зоны реактора
При критическом изменении температуры специальный компонент, отслеживающий температуру активной зоны, должен включить необходимые насосы
№14 слайд
![Анализ проблемы Имеющиеся](/documents_6/9f51cdc9162147fe12b496b280d11512/img13.jpg)
Содержание слайда: Анализ проблемы
Имеющиеся трудности
Имеются различные типы насосов, произведенные различными заводами
У каждого насоса свой метод для его активации
Возможные трудности в будущем
При добавлении нового насоса, необходимо переписать весь код
При каждом таком добавлении существенные накладные расходы
Решение
Используйте в своем коде делегаты
№18 слайд
![Свойства делегатов Делегаты](/documents_6/9f51cdc9162147fe12b496b280d11512/img17.jpg)
Содержание слайда: Свойства делегатов
Делегаты похожи на указатели функций в C++, но являются типобезопасными.
Делегаты допускают передачу методов в качестве параметров.
Делегаты можно использовать для задания функций обратного вызова.
Делегаты можно связывать друг с другом; например, несколько методов можно вызвать по одному событию.
Точное соответствие прототипа методов прототипу делегата не требуется (вариативность в делегатах - позволяет методу иметь тип возвращаемого значения, степень наследования которого больше, чем указано в делегате, либо позволяет использовать метод с типами параметров, степень наследования которых меньше, чем у типа делегата).
№24 слайд
![Делегат с анонимным методом](/documents_6/9f51cdc9162147fe12b496b280d11512/img23.jpg)
Содержание слайда: Делегат с анонимным методом
Создание анонимных методов является, по существу, способом передачи блока кода в качестве параметра делегата
Использование анонимных методов позволяет сократить издержки на кодирование при создании делегатов, поскольку не требуется создавать отдельный метод
№30 слайд
![Передача параметров в события](/documents_6/9f51cdc9162147fe12b496b280d11512/img29.jpg)
Содержание слайда: Передача параметров в события
Параметры в события должны передаваться как EventArgs
Создайте класс, унаследованный от EventArgs, который будет служить контейнером для параметров события
Один и тот же метод-подписчик может вызываться несколькими событиями
Первым параметром, передаваемым в метод, всегда должен быть издатель события (sender)
№33 слайд
![Понятие атрибутов Атрибуты -](/documents_6/9f51cdc9162147fe12b496b280d11512/img32.jpg)
Содержание слайда: Понятие атрибутов
Атрибуты - это:
Описательные тэги в программном коде, передающие информацию во время выполнения программы
Хранятся вместе с метаданными элемента
.NET Framework содержит множество встроенных атрибутов
Среда выполнения содержит код, проверяющий значения атрибутов и меняет свое поведение в соответствии с этими значениями
№34 слайд
![Применение атрибутов](/documents_6/9f51cdc9162147fe12b496b280d11512/img33.jpg)
Содержание слайда: Применение атрибутов
Синтаксис: Для использования атрибута необходимо указать его имя в квадратных скобках
Можно указать несколько атрибутов для одного элемента:
Заключить каждый из атрибутов в отдельные квадратные скобки
Использовать одни квадратные скобки и перечислить атрибуты через запятую
В некоторых случаях необходимо явно указать имя элемента, которому принадлежит атрибут
№36 слайд
![Использование атрибута](/documents_6/9f51cdc9162147fe12b496b280d11512/img35.jpg)
Содержание слайда: Использование атрибута Conditional
Используется как инструмент отладки
Производит условную компиляцию вызовов метода в зависимости от значения параметра, определяемого программным путем
Не производит условную компиляцию самих методов
Ограничения на методы:
Должны возвращать тип void
Не должны быть объявлены как override
Не должны быть методами наследуемыми от интерфейса
№39 слайд
![Создание класса атрибута](/documents_6/9f51cdc9162147fe12b496b280d11512/img38.jpg)
Содержание слайда: Создание класса атрибута
Наследование класса атрибута
Все классы атрибутов должны наследоваться от System.Attribute
Добавляйте к имени класса атрибута слово “Attribute”
Компоненты класса атрибута
Для каждого класса атрибута определите один конструктор, устанавливающий обязательную информацию
Создайте свойства для передачи дополнительных именованных параметров.
№40 слайд
![Обработка пользовательского](/documents_6/9f51cdc9162147fe12b496b280d11512/img39.jpg)
Содержание слайда: Обработка пользовательского атрибута
Процесс компиляции
1. Поиск класса атрибута
2. Проверка области действия атрибута
3. Проверка конструктора атрибута
4. Создание экземпляра объекта
5. Проверка именованных параметров
6. Установка для поля или свойства значения именованного параметра
7. Сохраняется текущее состояние класса атрибута
№44 слайд
![Типы свойств Для чтения и](/documents_6/9f51cdc9162147fe12b496b280d11512/img43.jpg)
Содержание слайда: Типы свойств
Для чтения и записи
Реализуют get - и set -аксессоры
Только для чтения
Реализован только get –аксессор
Не константы
Только для записи
Реализован только set –аксессор
Статические свойства
Для обращения к статическим данным, хранящим информацию на уровне всего класса
№46 слайд
![Сравнение свойств с методами](/documents_6/9f51cdc9162147fe12b496b280d11512/img45.jpg)
Содержание слайда: Сравнение свойств с методами
Сходства
И те, и другие содержат исполняемый код
И те, и другие можно использовать для инкапсуляции данных
И те, и другие могут быть virtual, abstract или override
Различия
Синтаксические – для работы со свойствами не используются круглые скобки
Семантические – свойства не могут быть void или принимать параметры
№47 слайд
![Что такое индексатор?](/documents_6/9f51cdc9162147fe12b496b280d11512/img46.jpg)
Содержание слайда: Что такое индексатор?
Индексатор позволяет получать доступ к объекту по индексу подобно тому, как это реализовано в массивах
Удобно, если свойство может принимать различные значения
Создание индексатора
Создайте свойство с именем this
Определите тип индекса
Использование индексатора
Для чтения или записи проиндексированного свойства используйте синтаксис для массивов
№50 слайд
![Сравнение индексаторов с](/documents_6/9f51cdc9162147fe12b496b280d11512/img49.jpg)
Содержание слайда: Сравнение индексаторов с массивами
Сходства
И те, и другие используют синтаксис для массивов
Различия
Индексаторы могут использовать индексы различных типов
Индексаторы можно перегружать – можно создать несколько индексаторов с индексами различного типа
Индексаторы – это не переменные, они не определяют область памяти. Их нельзя передавать в качестве параметров, используя ref или out
№53 слайд
![Пространство имен](/documents_6/9f51cdc9162147fe12b496b280d11512/img52.jpg)
Содержание слайда: Пространство имен
Пространство имен определяет декларативную область, которая позволяет отдельно хранить множества имен.
платформа .NET Framework использует пространства имен для организации большинства классов.
Пример: библиотека .NET Framework использует пространство имен System.
объявление собственного пространства имен поможет в управлении областью действия имен классов и методов в крупных программных проектах
№60 слайд
![Рекомендации по именованию](/documents_6/9f51cdc9162147fe12b496b280d11512/img59.jpg)
Содержание слайда: Рекомендации по именованию пространств имен
Для логического разделения имени используйте технику «Паскаль»
Пример: VendorA.SuiteB
Рекомендуется для пространств имен использовать префикс с именем компании
Пример: Microsoft.Office
При необходимости используйте имена во множественном числе
Example: System.Collections
Избегайте конфликтов имен между пространствами имен и классами
Скачать все slide презентации Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5) одним архивом:
Похожие презентации
-
Department of Informational Systems. Хэш функции, свойства и применения. Семейство хэш функций MD4. (Лекция 8)
-
Пространство имен в XML документе. Java. (Лекция 12)
-
Основы С. Платформа Microsoft. NET. Основные понятия. Пространство имен. (Лекция 1)
-
Дополнения к XML. Пространства имен. (Лекция 4)
-
Операторы в языке Си. (Лекция 5)
-
Основные операторы языка С. Лекция 2. 2
-
Обработка событий в JavaScript. Лекция 9
-
Основные элементы класса: поля, методы, конструкторы, декструкторы, свойства. Лекция 3
-
Управляющие операторы языка высокого уровня. Лекция 3
-
Графика. Важные пространства имен