- •1. Эволюция языков прогр-я.
- •2. Что такое .Net? Обзор технологий программирования под Windows.
- •3. Компоненты платформы .Net. Что такое .Net Framework?
- •4. Модель выполнения приложения в среде .NetFramework. Промежуточныйязык Microsoft (Microsoft Intermediate Language, msil). Сборки
- •5. Обзор встр. Типов данных в с#. Применение встроенной функц-сти типов данных.
- •6. Операции ввода-вывода. Формат вывода. Пространство имён System. Класс Math. Пространство имён System и класс Math
- •7. Арифметические операции. Операции отношений и логические операции. Операторы и выражения в c# .
- •Операторы сравнения в c#. Лог. Операции для условий
- •Операторы
- •8. Одномерные массивы в c#. Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •9. Двумерныемассивы в c#. Виды двумерных массивови способы их определения; способы создания; построчный вывод на экран
- •10. Структуры в c#. Создание структур, доступ к элементам, массивы структур.
- •11.Объект и его свойства. Характеристики ооп.
- •12.Классы в c#. Форма определения класса. Члены класса: методы, поля, свойства и события.
- •13.Конструкторы. Параметризованные конструкторы. Использование оператора new.
- •14. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •15. Деструкторы. Сборка «мусора».
- •16. Определение методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов.
- •17. Модификаторы ref, out, params параметров методов.
- •18. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •19.Область видимости и время существования переменных.
- •20. Преобразование и приведение типов.
- •21. Обработка исключительных ситуаций.
- •22. Перегрузка методов и перегрузка конструкторовкак механизм реализации полиморфизма. Виды конструкторов.
- •23. Понятие стека. Класс «Стек из символов», его основные методы.
- •24. Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •25. Свойства как механизм реализации инкапсуляции. Формат записи свойств.
- •26. Индексаторы. Специальные приемы построения типов. Создание одномерных и двумерных индексаторов.
- •27.Наследование. Базовые и производные классы. Доступы к членам базовых классов.
- •28.Конструкторы и наследование (проект «Наследование»).
- •29. Ссылки на базовый класс и объекты производных классов.
- •30. Виртуальные методы и их переопределение.
- •31. Абстрактные классы.
- •32. Понятие интерфейса. Определение интерфейса.
- •33. Способы реализации интерфейса.
- •34.Некоторые станд.Интерфейсы среды .Net Framework.
- •35. Механизмы реализации полиморфизма в c#.
- •36. Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация).
- •37. Коллекции и наборы. Обзор коллекций. Интерфейсы коллекций. Классы коллекций общего назначения.
- •38. Классы ArrayList, Queue, Stack. Методы работы с различными структурами данных.
- •39. Динамическая идентификация типов. Проверка типа с помощью ключевого слова is. Использование операторов as, typeof.
- •40. Обобщение. Разработка обобщенных наборов, методов, классов.
- •41. Отражение и атрибуты. Понятие отражения. Класс System.Type. Получение информации о методах и типах. Атрибуты. Основы применения атрибутов.
- •42.Принципы работы Windows-приложений c пользователем.
- •43. Делегаты. Назначение делегатов. Многоадресатная передача.
- •44. События. Объявление и генерация событий. Реализация обработчиков событий.
- •Объявление события:
- •45.Понятие компонента и компонентной модели, компонентно-ориентированного программирования.
- •46.Принципы и технологии внедрения и связывания объектов. Ос Windows позволяет:
43. Делегаты. Назначение делегатов. Многоадресатная передача.
В консольных приложениях программный код Main() тем или иным способом направлял запросы соответствующим объектам. В Windows-приложениях должно существовать обратное обращение объекта к обращаемой стороне (ОС), ведь они выполняются нелинейно. Например, в приложениях архитектуры WindowsForms нужно выполнять действия только по щелчку кнопки мыши, нажатию клавиш и др. В серверных приложениях нужно ожидать сетевого запроса. В среде .NET Framework реализация таких сценариев возможна с использованием интерфейсов обратного вызова, а также событий и делегатов. Интерфейсы определяют поведение, которое может поддерживаться самыми разными типами (объектами классов). Но интерфейс использовать трудоемко: нужно разработать класс-посредник, который реализует интерфейс обратного вызова. В С# лучше обрабатывать сообщения ОС с помощью событий и делегатов. События (event) – это отправленное объектом уведомление о совершении какого-либо действия. Действие может быть выполнено пользователем или программой. Объект, сгенерировавший событие, называется отправителем событий. Объект, перехвативший событие и реагирующий на него, называется получателем событий. При обработке событий объект-отправитель «не знает», какой объект или метод получит (обработает) событие. Поэтому нужен посредник между источником и получателем события. Делегат – объект, кот.может ссылаться на метод. При создании делегата в С# указывается не только имя метода, но и набор передаваемых ф-ции параметров (если они есть), и возвращаемое ф-цией значение. Делегат – спец.класс в С#. Делегаты ссылаются на один метод и определяются в период выполнения. Они широко примен. для асинхронной обработки и добавления нестанд. кода к коду классов. Делегаты могут исп.для многих целей, включая методы обратного вызова, определение статических методов и обработку событий. Тип делегата определяется сигнатурой метода, кот.м.б. вызван ч-з каждый конкретный экземпляр. Делегат можно использовать как обычную переменную. Вызов делегата такой же как и вызов обычной ф-ции. Делегат объявляется с пом. ключ. слова delegate. Delegate – это класс, содержащий ссылку (адрес) на метод или, возможно, несколько методов в приложении, которые могут быть вызваны с помощью делегата позже. Делегат хранит 3 элемента информации: - имя метода, к которому должен обращаться вызов; - аргументы метода; - возвращаемое методом значение. После создания делегата и получения такой информации, делегат может динамически (во время работы приложения) вызывать методы, на которые он указывает.
Многоадресатная передача (multicasting) – Это способность создавать список, цепочку вызовов методов, которые автоматически активизируются при вызове делегатов. Для этого создают экземпляр делегата и добавляют имена методов в цепочку вызовов с помощью оператора +=. Делегат с многоадресатной передачей должен возвращать тип void.
44. События. Объявление и генерация событий. Реализация обработчиков событий.
В консольных приложениях программный код Main() тем или иным способом направлял запросы соответствующим объектам. В Windows-приложениях должно существовать обратное обращение объекта к обращаемой стороне (ОС), ведь они выполняются нелинейно. Например, в приложениях архитектуры WindowsForms нужно выполнять действия только по щелчку кнопки мыши, нажатию клавиш и др. В серверных приложениях нужно ожидать сетевого запроса. В среде .NET Framework реализация таких сценариев возможна с использованием интерфейсов обратного вызова, а также событий и делегатов. Интерфейсы определяют поведение, которое может поддерживаться самыми разными типами (объектами классов). Но интерфейс использовать трудоемко: нужно разработать класс-посредник, который реализует интерфейс обратного вызова. В С# лучше обрабатывать сообщения ОС с помощью событий и делегатов. События (event) – это отправленное объектом уведомление о совершении какого-либо действия. Событие – автоматическое уведомление о выполнении некоторых действий. Действие может быть выполнено пользователем или программой. Объект, сгенерировавший событие, называется отправителем событий. Объект, перехвативший событие и реагирующий на него, называется получателем событий. Объявление стандартного делегата событий:
public delegate void EventHandler (object sender EventArgs e);
Примечания: в делегатах ссылка представляет собой адрес метода, хотя он и не объект. Ссылка метода – точка входа при вызове метода. Эту ссылку можно присвоить делегатам. Однако делегат должен вызывать только такие методы, у которых тип возвращаемого значения и список параметров совпадают с соответствующими элементами делегата.