- •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 позволяет:
41. Отражение и атрибуты. Понятие отражения. Класс System.Type. Получение информации о методах и типах. Атрибуты. Основы применения атрибутов.
Программный код в среде CLR упаковывается в сборки. Компоновочный файл (assembly) содержит информацию о развертывании приложения, ее версии. Он нужен для поддержки механизма безопасного взаимодействия компонентов, межъязыковой работоспособности. Обычно сборку отождествляют с компоновочным файлом, но фактически это логический контейнер, который содержит следующие данные: 1) метаданные сборки (манифест) – состоят из описания сборки (имя, версия, поддерживаемые языки). 2) метаданные типов – это информация описывает тип, включая пространство имен, имена классов, входящих в сборку, члены классов (конструкторы, методы, свойства) и их параметры; 3) код на промежуточном языке MSIL – он затем компилируется в двоичные машинные коды при запуске сборки; 4) ресурсы – это объекты (строки, изображения, подключаемые файлы), которые используются приложением.
Просмотреть манифест сборки можно с помощью Object Browser, а также с помощью утилиты дизассемблирования ILDasm.exe. Она позволяет просмотреть не только манифест, но и метаданные типов, инструкции IL, ресурсы.
ПУСК -> VsTools -> Promt -> ILDasm -> папка с проектом -> папка Debug -> *.exe.
Если дважды щелкнуть по нему, то попадаем в метаданные в блокноте. Обычно все компоненты находятся в одном файле. Говорят: однофайловая сборка. Этот файл имеет расширение *.dll или *.exe. Для создания многофайловых сборок, компоновочный файл связывают с другим файлом с помощью модификатора internal. Модификатор internal используется также для создания программных компонентов. Его назначение – заявить о том, что некоторый элемент известен во всех файлах, входящих в состав компоновочного файла, но не известен вне его.
Отражение (reflection) – это средство, которое позволяет получить информацию о типах (объектах) и управлять ими. Его называют также отображением типов. Используются для создания динамичных структур данных и упрощает подключение готовых модулей.
По существу, отражение служит для представления программного кода в виде объекта. Оно позволяет запрашивать и генерировать код от целых сборок, от его модулей или от отдельных выражений. Ядром отражения является класс System.Type. Объект этого класса воспроизводит или отражает базовый тип, который он представляет. Для использования отражения и класса Type нужно включить инструкцию: using System.Reflection;. Класс Type является производным от класса System.Reflection.MemberInfo. В этом классе имеются абстрактные свойства такие, как тип класса, тип интерфейса, имя типа и др. Используя методы и свойства класса Type, можно подробно включить информацию о типе, ведь во время компиляции подключенные программные коды становятся недоступными, а отражение (класс Type) позволяет получить информацию о программных кодах.
Атрибуты. С помощью атрибутов можно вносить в программу информацию описательного характера о классе, методе и т.д. Атрибут не является членом класса. Он записывается в квадратных скобках перед каким-то элементом сборки или класса. Например, в Windows приложениях в файле Program записан атрибут [STAThread] (Single Threaded Apartament) – модель организации однопоточной обработки. Атрибуты поддерживаются классом System.Attribute. Чтобы распознать что это атрибут, их называют составным именем. Например, ErrorAttribute, AttributeUsage. Хотя атрибуты – классы, но они очень просты. Обычно содержат лишь поля и свойства.
Встроенные атрибуты. В С# имеется 3 встроенных атрибута: 1) AttributeUsage – определяет перечисление типов данных, к которым можно применить атрибут. Его можно просмотреть в Object Browser. Это такие типы как интерфейсы, свойства, методы, классы, события и т.д. 2) Conditional – позволяет создавать условные методы. Условный метод – это метод, который вызывается только в том случае, если его идентификатор определен в директиве компилятора. Обычно его применяют при распространении пробных версий приложений. 3) Obsolete[“message”] – позволяет отмечать какой-либо элемент приложения как устаревший.