Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал по ооп.docx
Скачиваний:
3
Добавлен:
04.08.2019
Размер:
102.94 Кб
Скачать
  1. Анонимные методы

  • Вставка кода в метод, вместо создания ещё одного метода

  • Уменьшение количества методов класса

  • Создание «замкнутых областей»

  • Тип делегата вводится автоматически

  • Локальная переменная блока, в котором определён анонимный метод, является для него внешней

  • Внешняя переменная, использующаяся анонимным методом, называется захваченной

  • захваченные объекты существуют до тех пор пока существуют использующие их методы

  • нельзя использовать ref и out параметры

  • нельзя использовать this в анонимном методе, если он опр-ся в структуре

addButton.Click + = AddClick

События и интерфейсы:

  • События могут быть членами интерфейса

  • При имплементации события интерфейса для него могут быть реализованы специфичные add и remove методы

  • В отличии от свойств, при реализации события методы add и remove не обязательны

Интерфейсы, события, делегаты:

  1. В .NET поведение «обратного вызова» (callback) может быть реализовано через интерфейсы, делегаты или события.

  2. когда использовать интерфейсы?

- когда объект предоставляет сов-сть многих callback методов

3. события использовать

- когда разрабатывается компонент, который должен извещать об изменениях

4. делегаты использовать

- имеется единичный callback метод, который не связан с компонентной моделью .NET

  1. Управление исключениями

  • Заменяет процедурно-ориентированный подход, при котором любая функция возвращает код ошибки

  • Упрощает написание и поддержку программного кода

  • Проблемные случаи обрабатываются намного лучше

Обработка исключений:

- В с# исключения могут быть обработаны программной конструкцией try {} catch {}

- catch может иметь несколько путей соответственно для различных исключений

- если error нет то catch не вызывается

- Большая часть стандартных методов выполняет генерацию исключений при проблемной ситуации

Класс System.Exception:

- Является базовым классом для всех исключений в CLR

- содержит информацию о наступившей ошибке или другой ситуации:

  • Message – текстовое описание ошибки

  • StackTrace – визуализация

  • Source- источник ошибки

Алгоритм работы оператора try:

  1. условия обнаружения (catch) проверяется последовательно

  2. в итоге одно из условий всегда удовлетворяется (если список условий не пуст)

  3. имя параметра exeption в условии обнаружения можно опустить

  4. тип exeption должен быть выводим из System.Exeption

в случае отсутствия параметра exeption подраз-ся System.Exeption

  1. Использование исключений

Генерация исключений (throwing):

  1. имеет цель уведомить вызываемый код при возникновении проблемы

  2. исполняет в случае наступления ошибки или др. ситуации

  3. при возникновении прекращается исполнение программы и обходит стек на достижение catch блока для соответствующего исключения

  4. в C# вызывается оператором throw

  5. обычно создаётся объект, наследник класса System.Exeption, в котором описана проблема

  6. в catch блоке вызываемое исключение может быть обработано

Собственные классы исключений:

  1. В .NET программист может описать собственный класс исключений и создать иерархию классов

  2. такая возможность лучше при управлении ошибками и др. ситуациями

  3. для описания собственного исключения:

    • наследник класса System.ApplicationExeption

    • создать подходящий конструктор

    • можно добавить дополнительные свойства, дающие представление о проблеме

Конструкция try- finally:

  • выполняется в любом случае

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

Алгоритм работы оператора try:

  1. условия обнаружения (catch) проверяется последовательно

  2. в итоге одно из условий всегда удовлетворяется (если список условий не пуст)

  3. имя параметра exeption в условии обнаружения можно опустить

  4. тип exeption должен быть выводим из System.Exeption

в случае отсутствия параметра exeption подраз-ся System.Exeption

  1. Компонентное программирование в .NET Framework

Компоненты это:

  • независимые повторно используемые и типизируемые модули

  • в целом более крупные, чем объект

  • могут содержать множественные классы

  • независимы от языка реализации

Сравнение ООП и КОП:

1)Основные понятия Ооп

  • класс

  • интерфейс

2)основные понятия КОП

  • свойства (property)

  • события (event)

  • сборка (assembly)

Модели КОП:

  1. Component object model (com) – для конкретизации и использования компонента внутри процесса, между процессами и между компьютерами. Основа для Actuve X, OLE

  2. Java beans- стандарт SunMicrosystem для компонентов (не является независимым от языка)

  3. Corba- громоздкий IDL – интерфейс, сложность отображения одного языка в реализации другого.

Web- сервисы в .NET:

заменяют компонентный подход в среде Internet

  1. программируемые компоненты приложений, доступные посредством стандартных Интернет-протоколов

  2. центральная часть архитектуры .NET

  3. распределяют функциональность по глобальной сети

  4. строятся на существующих развивающихся стандартах

Преимущества КОП:

  1. снижение стоимости ПО

  2. возможность повторного использования

  3. унификация обработки объектов различной природы

  4. менее человекозависимый процесс создания ПО

  5. строгое математическое основание (лямбда-счисление)

концепция универсальна и одинакова

  1. Сборки и модули

Сборка – совокупность чего-либо.

Сборка – логическая единица развертывания приложения, содержащая манифест, метаданные, MSIL и необходимые ресурсы.

Сборки могут быть представлены в виде *.exe – файла или *.dll – файла.

Манифест- совокупность метаданных о компонентах сборки (версии, типы, зависимости…)

Метаданные – исчерпывающе описывают все типы, определённые в сборке: свойства, методы, аргументы…

Преимущества сборок:

  1. устранение проблемы с библиотеками

    • имеют уникальный номер версии

    • несколько версий одной и той же сборки могут существовать и использоваться одновременно

  2. решение проблемы инсталляции

Границы сборки:

  • граница безопасности

  • граница типов

  • область ссылок

  • границы версий

  • единица для разделения

  • элемент публикации

Манифест сборки:

Метаданные описывают сборку.

Метаданные содержат:

  • идентификацию: имя + версия + культура + собственник

  • список файлов

  • ссылочные сборки

  • предоставляют типы и ресурсы

  • извлекают права доступа

Идентификация сборки:

  • имя сборки (произвольная строка)

  • версия

    1. содержит 4 идентификатора, которые разделены точкой Major. Minor. Build. Revision (т.е 2.0.1765.2)

    2. использует CLR при version policy

      • собственник сборки (публичный ключ собств.)

      • культура (locate – сборки (REC766))

Сильно именованная сборка (служит для создания индивидуального идентификатора 1й сборки):

  1. имя

  2. версия

  3. культура

  4. хеш публичного ключа (public key token)

Только сильно именованная сборка может создаваться в GAC

Global Assembly Cache (GAC):

  1. общий контейнер, где инсталлированы разделяющие сборки

  2. возможно в GAC имеется 2 различные версии одной сборки

  3. утилиты для администрирования:

  • Gacutie

  • Windows Shell Exeption

  • .NET Configuration Management Console

Модули:

  1. одна сборка- совокупность файлов

  2. все входят в один и тот же указанный модуль

  3. один из них может содержать манифест сборки

  4. модули содержат только приложения в которых нуждаются

  5. модули могут быть и ресурсными файлами типа .jpg, .xls, .mab

  6. VS.NET не может компилировать одну сборку в различные модули

Поиск сборки:

  1. случаи в которых ищется сборка

  • при указании на вн. слабоименованную сборку (LateBinding)

  • приложение использует много сборок

  • при указании на сильноименованную сборку

  • при указании на часть сильноименованной сборки

  1. процесс поиска называется Probing

Конфигурационные файлы:

App.exe.config используют:

  • для администрирования

  • для конфигурирования путей

  • для смены версии

вместо добавления записи в реестре (WinRegistry)

  1. Шаблоны проектирования

  2. Атрибуты

Применяются для описания вспомогательной информации к коду:

  • при компилировании записываются в метаданные

  • могут быть извлечены из метаданных и обработаны в различных инструментах

  • сущность класса, наследника от System.Attribute

  • можно использовать стандартные и собственные атрибуты

Атрибуты с объектами:

Соглашение об именовании .NET:

  • любые классы описывающие атрибуты должны завершаться на Attribute

  • при использовании атрибутов окончание Attribut можно опустить

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

В процедуре атрибут [Dll Import] требует от компилятора:

  • создать объект класса System.Runtime InteropServicesDll Import

  • в конструктор передаёт параметр со значением «user32.dll»

  • в публичное поле EnterPoint

Указания назначения:

  • для декларативного управления

  • для исполнения автоматизации объектов

  • для взаимодействия с дизайнером при создании новых компонентов

  • для разработки приложений ASP.net

  • для взаимодействия с неуправляемым кодом

применение в remoting – технологиях.