🗊Презентация Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5)

Нажмите для полного просмотра!
Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №1Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №2Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №3Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №4Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №5Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №6Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №7Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №8Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №9Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №10Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №11Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №12Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №13Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №14Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №15Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №16Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №17Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №18Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №19Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №20Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №21Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №22Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №23Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №24Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №25Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №26Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №27Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №28Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №29Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №30Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №31Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №32Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №33Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №34Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №35Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №36Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №37Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №38Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №39Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №40Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №41Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №42Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №43Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №44Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №45Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №46Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №47Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №48Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №49Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №50Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №51Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №52Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №53Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №54Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №55Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №56Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №57Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №58Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №59Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №60Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №61Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №62Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №63Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №64Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5), слайд №65

Содержание

Вы можете ознакомиться и скачать презентацию на тему Операторы Делегаты и события. Атрибуты. Свойства и индексаторы. Пространство имен. (Лекция 5). Доклад-сообщение содержит 65 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Лекция 5:
 Операторы
Делегаты и события
Атрибуты
Свойства и индексаторы
Пространство имен
Описание слайда:
Лекция 5: Операторы Делегаты и события Атрибуты Свойства и индексаторы Пространство имен

Слайд 2





Обзор операторов
Операторы и методы
Операторы в C#
Описание слайда:
Обзор операторов Операторы и методы Операторы в C#

Слайд 3





Операторы и методы
Использование методов
Громоздкая, неудобная запись выражений 
Увеличивается вероятность возникновения ошибок


Использование операторов 
Упрощается запись выражений
Описание слайда:
Операторы и методы Использование методов Громоздкая, неудобная запись выражений Увеличивается вероятность возникновения ошибок Использование операторов Упрощается запись выражений

Слайд 4





Возможности перегрузки операторов
Описание слайда:
Возможности перегрузки операторов

Слайд 5





Основы перегрузки операторов
Перегрузка операторов
Перегружайте операторы только когда это действительно необходимо
Синтаксис перегрузки операторов
operator op, где op – это оператор, который перегружается
Пример
Описание слайда:
Основы перегрузки операторов Перегрузка операторов Перегружайте операторы только когда это действительно необходимо Синтаксис перегрузки операторов operator op, где op – это оператор, который перегружается Пример

Слайд 6





Перегрузка операторов сравнения
Операторы сравнения необходимо перегружать попарно
< и >
<= и >=
== и !=
При перегрузке операторов == и != настоятельно рекомендуется переопределять (override) метод Equals
Вместе с методом Equals необходимо переопределить также метод GetHashCode
Описание слайда:
Перегрузка операторов сравнения Операторы сравнения необходимо перегружать попарно < и > <= и >= == и != При перегрузке операторов == и != настоятельно рекомендуется переопределять (override) метод Equals Вместе с методом Equals необходимо переопределить также метод GetHashCode

Слайд 7





Пример перегрузки оператора ++
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;
        }
}
Описание слайда:
Пример перегрузки оператора ++ 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; } }

Слайд 8





Перегрузка операторов преобразования типов
Перегруженные операторы преобразования типов
implicit – неявное преобразование типов
explicit – явное преобразование типов
Если в классе используется преобразование типа в строку
В классе должен быть переопределен метод ToString
Описание слайда:
Перегрузка операторов преобразования типов Перегруженные операторы преобразования типов implicit – неявное преобразование типов explicit – явное преобразование типов Если в классе используется преобразование типа в строку В классе должен быть переопределен метод ToString

Слайд 9





Пример перегрузки операторов преобразования типов
Описание слайда:
Пример перегрузки операторов преобразования типов

Слайд 10





Многократная перегрузка операторов
Один и тот же операторов можно перегрузить несколько раз
Описание слайда:
Многократная перегрузка операторов Один и тот же операторов можно перегрузить несколько раз

Слайд 11





Тест: Найдите ошибки
Описание слайда:
Тест: Найдите ошибки

Слайд 12





Создание и использование делегатов
Сценарий: Атомная электростанция
Анализ проблемы
Создание делегатов
Использование делегатов
Описание слайда:
Создание и использование делегатов Сценарий: Атомная электростанция Анализ проблемы Создание делегатов Использование делегатов

Слайд 13





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

Слайд 14





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

Слайд 15





Пример
Описание слайда:
Пример

Слайд 16





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

Слайд 17





Создание делегатов
Синтаксис объявления делегата


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

Слайд 18





Свойства делегатов
Делегаты похожи на указатели функций в C++, но являются типобезопасными.
Делегаты допускают передачу методов в качестве параметров.
Делегаты можно использовать для задания функций обратного вызова.
Делегаты можно связывать друг с другом; например, несколько методов можно вызвать по одному событию.
Точное соответствие прототипа методов прототипу  делегата не требуется (вариативность в делегатах - позволяет методу иметь тип возвращаемого значения, степень наследования которого больше, чем указано в делегате, либо позволяет использовать метод с типами параметров, степень наследования которых меньше, чем у типа делегата).
Описание слайда:
Свойства делегатов Делегаты похожи на указатели функций в C++, но являются типобезопасными. Делегаты допускают передачу методов в качестве параметров. Делегаты можно использовать для задания функций обратного вызова. Делегаты можно связывать друг с другом; например, несколько методов можно вызвать по одному событию. Точное соответствие прототипа методов прототипу делегата не требуется (вариативность в делегатах - позволяет методу иметь тип возвращаемого значения, степень наследования которого больше, чем указано в делегате, либо позволяет использовать метод с типами параметров, степень наследования которых меньше, чем у типа делегата).

Слайд 19





Где следует размещать объявление делегата?
Размещают делегаты:
непосредственно в пространстве имен, наряду с объявлениями других классов, структур, интерфейсов;
внутри другого класса, наряду с объявлениями методов и свойств.
Описание слайда:
Где следует размещать объявление делегата? Размещают делегаты: непосредственно в пространстве имен, наряду с объявлениями других классов, структур, интерфейсов; внутри другого класса, наряду с объявлениями методов и свойств.

Слайд 20





Использование делегатов
Делегаты вызываются также как и методы
Описание слайда:
Использование делегатов Делегаты вызываются также как и методы

Слайд 21





Пример использования делегата
Описание слайда:
Пример использования делегата

Слайд 22





Делегат с именованным методом
При создании экземпляра делегата с помощью именованного метода этот метод передается в качестве параметра
Описание слайда:
Делегат с именованным методом При создании экземпляра делегата с помощью именованного метода этот метод передается в качестве параметра

Слайд 23





Пример делегата с именованным методом
Описание слайда:
Пример делегата с именованным методом

Слайд 24





Делегат с анонимным методом
Создание анонимных методов является, по существу, способом передачи блока кода в качестве параметра делегата



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

Слайд 25





Пример делегата с анонимным методом
Описание слайда:
Пример делегата с анонимным методом

Слайд 26





Определение и использование событий
Как работают события
Определения событий
Передача параметров в события
Демонстрация: Обработка событий
Описание слайда:
Определение и использование событий Как работают события Определения событий Передача параметров в события Демонстрация: Обработка событий

Слайд 27





Как работают события
Издатель
Генерирует событие, оповещающее все заинтересованные объекты (подписчики)
Подписчик
Предоставляет метод, вызываемый при генерации события
Форма объявления события:
Описание слайда:
Как работают события Издатель Генерирует событие, оповещающее все заинтересованные объекты (подписчики) Подписчик Предоставляет метод, вызываемый при генерации события Форма объявления события:

Слайд 28





Определения событий
Определение события


Подпись на событие


Уведомление подписчиков о событии
Описание слайда:
Определения событий Определение события Подпись на событие Уведомление подписчиков о событии

Слайд 29





Пример определения события
Описание слайда:
Пример определения события

Слайд 30





Передача параметров в события
Параметры в события должны передаваться как EventArgs
Создайте класс, унаследованный от EventArgs, который будет служить контейнером для параметров события
Один и тот же метод-подписчик может вызываться несколькими событиями
Первым параметром, передаваемым в метод, всегда должен быть издатель события (sender)
Описание слайда:
Передача параметров в события Параметры в события должны передаваться как EventArgs Создайте класс, унаследованный от EventArgs, который будет служить контейнером для параметров события Один и тот же метод-подписчик может вызываться несколькими событиями Первым параметром, передаваемым в метод, всегда должен быть издатель события (sender)

Слайд 31





Пример передачи параметров в события
Описание слайда:
Пример передачи параметров в события

Слайд 32





Атрибуты
Описание слайда:
Атрибуты

Слайд 33





Понятие атрибутов
Атрибуты - это:
Описательные тэги в программном коде, передающие информацию во время выполнения программы
Хранятся вместе с метаданными элемента

.NET Framework содержит множество встроенных атрибутов
Среда выполнения содержит код, проверяющий значения атрибутов и меняет свое поведение в соответствии с этими значениями
Описание слайда:
Понятие атрибутов Атрибуты - это: Описательные тэги в программном коде, передающие информацию во время выполнения программы Хранятся вместе с метаданными элемента .NET Framework содержит множество встроенных атрибутов Среда выполнения содержит код, проверяющий значения атрибутов и меняет свое поведение в соответствии с этими значениями

Слайд 34





Применение атрибутов
Синтаксис: Для использования атрибута необходимо указать его имя в квадратных скобках


Можно указать несколько атрибутов для одного элемента:
Заключить каждый из атрибутов в отдельные квадратные скобки
Использовать одни квадратные скобки и перечислить атрибуты через запятую
В некоторых случаях необходимо явно указать имя элемента, которому принадлежит атрибут
Описание слайда:
Применение атрибутов Синтаксис: Для использования атрибута необходимо указать его имя в квадратных скобках Можно указать несколько атрибутов для одного элемента: Заключить каждый из атрибутов в отдельные квадратные скобки Использовать одни квадратные скобки и перечислить атрибуты через запятую В некоторых случаях необходимо явно указать имя элемента, которому принадлежит атрибут

Слайд 35





Использование стандартных атрибутов
В .NET определено большое количество стандартных атрибутов
Пример: Использование атрибута Conditional
Описание слайда:
Использование стандартных атрибутов В .NET определено большое количество стандартных атрибутов Пример: Использование атрибута Conditional

Слайд 36





Использование атрибута Conditional
Используется как инструмент отладки
Производит условную компиляцию вызовов метода в зависимости от значения параметра, определяемого программным путем
Не производит условную компиляцию самих методов
Ограничения на методы:
Должны возвращать тип  void
Не должны быть объявлены как  override
Не должны быть методами наследуемыми от интерфейса
Описание слайда:
Использование атрибута Conditional Используется как инструмент отладки Производит условную компиляцию вызовов метода в зависимости от значения параметра, определяемого программным путем Не производит условную компиляцию самих методов Ограничения на методы: Должны возвращать тип void Не должны быть объявлены как override Не должны быть методами наследуемыми от интерфейса

Слайд 37





Создание пользовательских атрибутов
Определение области действия пользовательского атрибута
Создание класса атрибута
Обработка пользовательского атрибута
Использование нескольких атрибутов
Описание слайда:
Создание пользовательских атрибутов Определение области действия пользовательского атрибута Создание класса атрибута Обработка пользовательского атрибута Использование нескольких атрибутов

Слайд 38





Определение области действия пользовательского атрибута
Для определения области действия используйте тэг атрибута AttributeUsage


Для определения нескольких элементов необходимо использовать оператор «|»


Спецификация используемости атрибута
Описание слайда:
Определение области действия пользовательского атрибута Для определения области действия используйте тэг атрибута AttributeUsage Для определения нескольких элементов необходимо использовать оператор «|» Спецификация используемости атрибута

Слайд 39





Создание класса атрибута
Наследование класса атрибута
Все классы атрибутов должны наследоваться от  System.Attribute
Добавляйте к имени класса атрибута слово “Attribute”
Компоненты класса атрибута 
Для каждого класса атрибута определите один конструктор, устанавливающий обязательную информацию
Создайте свойства для передачи дополнительных именованных параметров.
Описание слайда:
Создание класса атрибута Наследование класса атрибута Все классы атрибутов должны наследоваться от System.Attribute Добавляйте к имени класса атрибута слово “Attribute” Компоненты класса атрибута Для каждого класса атрибута определите один конструктор, устанавливающий обязательную информацию Создайте свойства для передачи дополнительных именованных параметров.

Слайд 40





Обработка пользовательского атрибута
Процесс компиляции
1.	  Поиск класса атрибута
2.	  Проверка области действия атрибута
3.	  Проверка конструктора атрибута
4.	  Создание экземпляра объекта
5.	  Проверка именованных параметров
6.	  Установка для поля или свойства значения именованного параметра
7.	  Сохраняется текущее состояние класса атрибута
Описание слайда:
Обработка пользовательского атрибута Процесс компиляции 1. Поиск класса атрибута 2. Проверка области действия атрибута 3. Проверка конструктора атрибута 4. Создание экземпляра объекта 5. Проверка именованных параметров 6. Установка для поля или свойства значения именованного параметра 7. Сохраняется текущее состояние класса атрибута

Слайд 41





Свойства и индексаторы
Описание слайда:
Свойства и индексаторы

Слайд 42





Зачем использовать свойства?
Преимущества использования свойств:
Удобный способ инкапсуляции информации внутри класса
Прозрачный синтаксис 
Пример: o.SetValue(o.GetValue()+1);
		        o.Value++;
Описание слайда:
Зачем использовать свойства? Преимущества использования свойств: Удобный способ инкапсуляции информации внутри класса Прозрачный синтаксис Пример: o.SetValue(o.GetValue()+1); o.Value++;

Слайд 43





Использование аксессоров
Можно работать со свойством как с открытой переменной-членом класса
get –аксессор предназначен для чтения свойств  
set – аксессор предназначен для установки свойства
Описание слайда:
Использование аксессоров Можно работать со свойством как с открытой переменной-членом класса get –аксессор предназначен для чтения свойств set – аксессор предназначен для установки свойства

Слайд 44





Типы свойств
Для чтения и записи
Реализуют  get - и set -аксессоры
Только для чтения
Реализован только get –аксессор
Не константы
Только для записи
Реализован только set –аксессор
Статические свойства
Для обращения к статическим данным, хранящим информацию на уровне всего класса
Описание слайда:
Типы свойств Для чтения и записи Реализуют get - и set -аксессоры Только для чтения Реализован только get –аксессор Не константы Только для записи Реализован только set –аксессор Статические свойства Для обращения к статическим данным, хранящим информацию на уровне всего класса

Слайд 45





Сравнение свойств с полями
Свойства – это «умные поля»
get –аксессор может возвращать расчетное значение
Сходства
Одинаковый синтаксис создания и использования
Различия 
Свойства не определяют область памяти
Свойства нельзя передавать в методы как ref или out
Описание слайда:
Сравнение свойств с полями Свойства – это «умные поля» get –аксессор может возвращать расчетное значение Сходства Одинаковый синтаксис создания и использования Различия Свойства не определяют область памяти Свойства нельзя передавать в методы как ref или out

Слайд 46





Сравнение свойств с методами
Сходства
И те, и другие содержат исполняемый код
И те, и другие можно использовать для инкапсуляции данных
И те, и другие могут быть virtual, abstract или override
Различия 
Синтаксические – для работы со свойствами не используются круглые скобки 
Семантические – свойства не могут быть void или принимать параметры
Описание слайда:
Сравнение свойств с методами Сходства И те, и другие содержат исполняемый код И те, и другие можно использовать для инкапсуляции данных И те, и другие могут быть virtual, abstract или override Различия Синтаксические – для работы со свойствами не используются круглые скобки Семантические – свойства не могут быть void или принимать параметры

Слайд 47





Что такое индексатор?
Индексатор позволяет получать доступ к объекту по индексу подобно тому, как это реализовано в массивах 
Удобно, если свойство может принимать различные значения
Создание индексатора
Создайте свойство с именем this
Определите тип индекса
Использование индексатора
Для чтения или записи проиндексированного свойства используйте синтаксис для  массивов
Описание слайда:
Что такое индексатор? Индексатор позволяет получать доступ к объекту по индексу подобно тому, как это реализовано в массивах Удобно, если свойство может принимать различные значения Создание индексатора Создайте свойство с именем this Определите тип индекса Использование индексатора Для чтения или записи проиндексированного свойства используйте синтаксис для массивов

Слайд 48





Создание одномерных индексаторов
тип_элемента — базовый тип индексатора
Параметр индекс получает индекс опрашиваемого (или устанавливаемого) элемента
Описание слайда:
Создание одномерных индексаторов тип_элемента — базовый тип индексатора Параметр индекс получает индекс опрашиваемого (или устанавливаемого) элемента

Слайд 49





Использование параметров при определении индексаторов
При создании индексатора 
Необходимо определить хотя бы один индекс
Укажите значение для каждого из параметров
Не используйте модификаторы ref или out
Описание слайда:
Использование параметров при определении индексаторов При создании индексатора Необходимо определить хотя бы один индекс Укажите значение для каждого из параметров Не используйте модификаторы ref или out

Слайд 50





Сравнение индексаторов с массивами
Сходства 
И те, и другие используют синтаксис для массивов
Различия 
Индексаторы могут использовать индексы различных типов
Индексаторы можно перегружать – можно создать несколько индексаторов с индексами различного типа
Индексаторы – это не переменные, они не определяют область памяти. Их нельзя  передавать в качестве параметров, используя ref или out
Описание слайда:
Сравнение индексаторов с массивами Сходства И те, и другие используют синтаксис для массивов Различия Индексаторы могут использовать индексы различных типов Индексаторы можно перегружать – можно создать несколько индексаторов с индексами различного типа Индексаторы – это не переменные, они не определяют область памяти. Их нельзя передавать в качестве параметров, используя ref или out

Слайд 51





Сравнение индексаторов со свойствами
Сходства 
И те, и другие используют get- и set -аксессоры
Ни те, ни другие не определяют область памяти
Ни те, ни другие не могут быть void
Различия 
Индексаторы можно перегружать
Индексаторы не могут быть статическими
Описание слайда:
Сравнение индексаторов со свойствами Сходства И те, и другие используют get- и set -аксессоры Ни те, ни другие не определяют область памяти Ни те, ни другие не могут быть void Различия Индексаторы можно перегружать Индексаторы не могут быть статическими

Слайд 52





Пространства имен
Описание слайда:
Пространства имен

Слайд 53





Пространство имен 
Пространство имен определяет декларативную область, которая позволяет отдельно хранить множества имен. 
платформа .NET Framework использует пространства имен для организации большинства классов. 
Пример: библиотека .NET Framework использует пространство имен System.
объявление собственного пространства имен поможет в управлении областью действия имен классов и методов в крупных программных проектах
Описание слайда:
Пространство имен Пространство имен определяет декларативную область, которая позволяет отдельно хранить множества имен. платформа .NET Framework использует пространства имен для организации большинства классов. Пример: библиотека .NET Framework использует пространство имен System. объявление собственного пространства имен поможет в управлении областью действия имен классов и методов в крупных программных проектах

Слайд 54





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

Слайд 55





Разрешение конфликтов имен
Реальные проекты могут насчитывать в своем составе тысячи классов
Что будет, если имена каких-то двух классов совпадут?
Не добавляйте приставку ко всем именам классов
Описание слайда:
Разрешение конфликтов имен Реальные проекты могут насчитывать в своем составе тысячи классов Что будет, если имена каких-то двух классов совпадут? Не добавляйте приставку ко всем именам классов

Слайд 56





Объявление пространств имен
Описание слайда:
Объявление пространств имен

Слайд 57





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

Слайд 58





Объявление  директивы using
Позволяет вернуть имена в область их видимости
Описание слайда:
Объявление директивы using Позволяет вернуть имена в область их видимости

Слайд 59





Использование альтернативных имен в директиве using
Можно создавать альтернативные имена (псевдонимы) для вложенных пространств имен и типов
Описание слайда:
Использование альтернативных имен в директиве using Можно создавать альтернативные имена (псевдонимы) для вложенных пространств имен и типов

Слайд 60





Рекомендации по именованию пространств имен
Для логического разделения имени используйте технику «Паскаль»
Пример: VendorA.SuiteB
Рекомендуется для пространств имен использовать префикс с именем компании 
Пример: Microsoft.Office 
При необходимости используйте имена во множественном числе
Example: System.Collections
Избегайте конфликтов имен между пространствами имен и классами
Описание слайда:
Рекомендации по именованию пространств имен Для логического разделения имени используйте технику «Паскаль» Пример: VendorA.SuiteB Рекомендуется для пространств имен использовать префикс с именем компании Пример: Microsoft.Office При необходимости используйте имена во множественном числе Example: System.Collections Избегайте конфликтов имен между пространствами имен и классами

Слайд 61





Использование внутренних (internal) классов, методов и данных
Зачем нужен модификатор доступа internal?
Модификатор доступа internal
Синтаксис
Пример использования модификатора доступа internal
Описание слайда:
Использование внутренних (internal) классов, методов и данных Зачем нужен модификатор доступа internal? Модификатор доступа internal Синтаксис Пример использования модификатора доступа internal

Слайд 62





Зачем нужен модификатор доступа internal?
Маленькие объекты редко используются сами по себе
Объекты должны взаимодействовать между собой, образуя более крупные объекты
Необходимо организовать доступ между отдельными объектами
Описание слайда:
Зачем нужен модификатор доступа internal? Маленькие объекты редко используются сами по себе Объекты должны взаимодействовать между собой, образуя более крупные объекты Необходимо организовать доступ между отдельными объектами

Слайд 63





Модификатор доступа internal
Сравнение модификаторов доступа
Модификатор доступа public логический
Модификатор доступа private логическийl
Модификатор доступа internal физический
Описание слайда:
Модификатор доступа internal Сравнение модификаторов доступа Модификатор доступа public логический Модификатор доступа private логическийl Модификатор доступа internal физический

Слайд 64





Синтаксис
Описание слайда:
Синтаксис

Слайд 65





Пример использования модификатора доступа internal
Описание слайда:
Пример использования модификатора доступа internal



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