- •Основные понятия и принципы ооп
- •Абстракция:
- •Инкапсуляция:
- •Аспекты платформы .Net Framework
- •Эволюция и основные возможности c#
- •Структура программы и синтаксис конструкций c#
- •Понятие семантики в математике и программировании
- •Теория вычислений д.Скотта. Семантика c#
- •Понятие класса и объекта. Концептуальная модель
- •Классы, поля, методы в c#
- •Определение типов. Классификация систем типизации
- •Система типов cts. Базисные типы
- •Пространство имен. Преобразование типов
- •Наследование в ооп
- •Базовые и производные классы в c#
- •Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в c#
- •Виды области видимости. Рекомендации
- •Понятие полиморфизма
- •Интерфейсы, их связь с абстрактными классами. Реализация
- •Понятие события в математике и программировании. Моделирование событий
- •Делегаты. События как особый вид делегатов
- •Исключения и их обработка в c#
- •Графический интерфейс Windows Forms. Программные компоненты и модель
- •Основные классы. Иерархия классов. Основные контролы
- •Создание пользовательских компонентов
Интерфейсы, их связь с абстрактными классами. Реализация
Понятие события в математике и программировании. Моделирование событий
1924 – Шейнфиннель – простая теория функций
1934 – Черч – Лямбда- Исчисление исследование теории множеств
1971 – Скотт - Полные и непрерывные решетки
80е – Скотт – исследование механизма определённых дескрипций
90е – Вольфангаген – схема двухуровневой концентрализации
События в Математике:
Событие – соотнесение над объектом предметной области. Произв. семейство объектов может быть параметризовано не только типами, но и событиями.
События в программировании:
Событие – способ внедрения фрагмента в код с целью изменения поведения программы.
Делегаты – тип, который описывает сигнатуру метода (список, типы и последовательность параметров)
Преимущества СОП:
возможность моделирования произвольных реальных объектов
потенциальная лёгкость настройки интерфейса
программирование основанное на сценариях
гибкость реинженеринга ПО
строгое мат. осн-е (концептуализация)
процент повторного использования кода высокий
Делегаты. События как особый вид делегатов
Делегаты – тип, который описывает сигнатуру метода (список, типы и последовательность параметров)
Управление событиями с помощью делегатов:
переменная делегат может иметь пустое значение null (метод не неазначен)
пустая переменная делегат не может быть вызвана (искл ситуация)
Переменные – делегаты являются объектами первого рода; их можно хранить в структурах данных, передавать как параметр.
Виды делегатов:
Единичные
Содержат ссылку к одному единственному методу
Наследники класса System.Delegate
Множественные
Содержат связанный список ссылок к методам
Наследник класса System.MulticastDelegate
System.MulticastDelegate
при вызове использует последовательно друг за другом все методы из списка
если multicast делегат возвращает значение или имеет ref или out параметр, результат только последний вызванный метод от списка методов делегата
если при вызове multicast делегата один из методов в списке вызвал исключение, следовательно метод из списка не вызывается
на практике single-cast делегаты почти не используются и под делегатом обыкновенно понимают multicast
События:
Используются для уведомления о некотором событии
Объект, вызывающий событие – инициатор (sender)
Объект, получающий событие – получатель (receiver)
Для получения события получатель предварительно подписывается на него
События поддерживаются через делегаты
События в с# специальные сущности делегата, декларированные ключевым словом event
Различия событий и делегатов:
События не эквивалентны члену, переменной типа делегат
События могут быть членами интерфейса, а делегаты не могут
Вызов события может происходить только из класса в котором оно описано
Доступ к событию по умолчанию синхронизирован
Конвенция для событий:
делегат который использует события
имеет имя обретаемое от глагола + EventHandler (SomeVerbEventHandler)
возвращает void и принимает 2 параметра (объект-инициатор типа System.Object и объект, содержащий данные о событии типа, наследника System.EventArgs)
события объявляют как public, начинаются с заглавной буквы и заканчиваются глаголом
Для вызова событий создают protected метод, не имеющий возвращаемого типа
метод-получатель (обработчик) события имеет имя объект_событие
Делегат System.EventHandler:
Описывает ссылку к callback методу, который обрабатывает событие, для которого не нужна дополнительная информация
Часто используется в .net Framework