- •Основные понятия и принципы ооп
- •Абстракция:
- •Инкапсуляция:
- •Аспекты платформы .Net Framework
- •Эволюция и основные возможности c#
- •Структура программы и синтаксис конструкций c#
- •Понятие семантики в математике и программировании
- •Теория вычислений д.Скотта. Семантика c#
- •Понятие класса и объекта. Концептуальная модель
- •Классы, поля, методы в c#
- •Определение типов. Классификация систем типизации
- •Система типов cts. Базисные типы
- •Пространство имен. Преобразование типов
- •Наследование в ооп
- •Базовые и производные классы в c#
- •Понятие инкапсуляции в математике и программировании. Описание и применение инкапсуляции в c#
- •Виды области видимости. Рекомендации
- •Понятие полиморфизма
- •Интерфейсы, их связь с абстрактными классами. Реализация
- •Понятие события в математике и программировании. Моделирование событий
- •Делегаты. События как особый вид делегатов
- •Исключения и их обработка в c#
- •Графический интерфейс Windows Forms. Программные компоненты и модель
- •Основные классы. Иерархия классов. Основные контролы
- •Создание пользовательских компонентов
Исключения и их обработка в c#
Заменяет процедурно-ориентированный подход, при котором любая функция возвращает код ошибки
Упрощает написание и поддержку программного кода
Проблемные случаи обрабатываются намного лучше
Генерация исключений (throwing):
имеет цель уведомить вызываемый код при возникновении проблемы
исполняет в случае наступления ошибки или др. ситуации
при возникновении прекращается исполнение программы и обходит стек на достижение catch блока для соответствующего исключения
в C# вызывается оператором throw
обычно создаётся объект, наследник класса System.Exeption, в котором описана проблема
в catch блоке вызываемое исключение может быть обработано
Собственные классы исключений:
В .NET программист может описать собственный класс исключений и создать иерархию классов
такая возможность лучше при управлении ошибками и др. ситуациями
для описания собственного исключения:
наследник класса System.ApplicationExeption
создать подходящий конструктор
можно добавить дополнительные свойства, дающие представление о проблеме
Конструкция try- finally:
выполняется в любом случае
используют для исполнения очищаемого кода, освобождения ресурсов
Алгоритм работы оператора try:
условия обнаружения (catch) проверяется последовательно
в итоге одно из условий всегда удовлетворяется (если список условий не пуст)
имя параметра exeption в условии обнаружения можно опустить
тип exeption должен быть выводим из System.Exeption
в случае отсутствия параметра exeption подраз-ся System.Exeption
Обработка исключений:
- В с# исключения могут быть обработаны программной конструкцией try {} catch {}
- catch может иметь несколько путей соответственно для различных исключений
- если error нет то catch не вызывается
- Большая часть стандартных методов выполняет генерацию исключений при проблемной ситуации
Современные подходы к программированию. ООП и КОП
Архитектурное решение .NET. Понятие сборки и манифеста. Пространство имен
Понятие атрибута. Его использование
Создание собственных атрибутов
Ограничения:
требуется, чтобы атрибут был наследником System.atribute
имена должны завершаться на Atribute
требуется описание допустимого назначения
могут описывать конструкторы с несколькими параметрами
могут описываться публичные поля и свойства
atribute usage:
через этот атрибут можно указать:
для чего используется атрибут
атрибут наследуется при наследовании типа, для которого он описан
Может обладать однократным или многократным применением.
Применяются для определения области описания. Преимущества атрибутов:
расширение документирования кода
широкая область применения
унификация хранения данных
Условные атрибуты:
# define DEBUG
# undef DEBUG
Сохранение атрибута:
представляется последовательность битов
записывается в таблицу метаданных для типа, объявленного в приложении
считывается с помощью Reflection из метаданных и является обыкновенным объектом от класса атрибута
Компиляция:
считывается компилятором
представляется последовательностью битов
записывается в таблицу метаданных для типа, объявленного в приложении