
- •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 позволяет:
36. Понятие обобщенного программирования. Принципы обобщенного программирования (абстрагирование, иерархия, типизация).
Обобщенное программирование (ОбП) призвано упростить повторное использование кодов программ и методов абстрагирования общих понятий. В то время как в Объектно-Ориентированное Программирование основное внимание уделяется данным, в ОбП – упор делается на алгоритм. ОбП – это создание кода программы, независимого от типа данных. Оно расширяет язык таким образом, что можно разработать классы и методы для какого-то обобщенного типа данных, а затем использовать этот алгоритм для реализации типов данных.
Впервые ОбП появилось в С++. В нем была разработана стандартная библиотека шаблонов – Template Library (STL). Ее авторы: Алекс Степанов и Мен Ли (1994 год). В настоящее время она расширена и называется (ATL – Active Template Library ). В среде . NET ОбП реализовано в виде коллекций.
Принципы абстрагирования и иерархии рассмотрены при изучении интерфейсов и коллекций. Динамическая идентификация позволяет распознать тип данных во время выполнения программы. Используется, когда имеется массив объектов базового класса и нужно точно узнать, на объект какого типа указывает ссылка на базовый класс. Или нужно проверить, удачно ли выполнена операция приведения типа. Динамическая идентификация типов также является ключевым компонентом средства Отражение (информация о типе). В C# динамическую идентификацию типов поддерживают 3 ключевых слова (или 3 оператора): is, as, typeof.
37. Коллекции и наборы. Обзор коллекций. Интерфейсы коллекций. Классы коллекций общего назначения.
Под коллекцией понимается группа (набор) разнотипных объектов. Коллекции (C#, Java) называют еще семейства (VBA), контейнеры (C++). Коллекции стандартизируют способ обработки групп объектов в приложениях. Коллекции упрощают программирование, предлагая строить структуры данных не с нуля. Пример примитивной коллекции – System.Array. В нем есть такие методы как сортировка, инвертирование, очистка, перечисление. Но класс Array имеет свои ограничения, и наиболее важным из них является невозможность динамического переопределения размеров при добавлении и удалении элементов. Среда .NET Framework поддерживает 3 основных типа коллекций: общего назначения, специализированные и ориентированные на побитовую организацию данных. Коллекции упрощают программирование, предлагая уже готовые решения для построения структур данных, разработка кот. «с нуля» отлич-ся большой трудоемкостью. Слова коллекции, семейства, контейнеры – это слова-синонимы. самая примитивная коллекция – это System.Array. но ограничение этой коллекции состоит в том, что невозможно динамически управлять размером массива при добавлении или удалении элементов. Коллекции реализуют технологию обобщенного пр-мирования. Оно появилось еще в языке С++. Целью обобщенного пр-мирования явл. создание прграммного кода, независимо от типов данных. Для этого были разработаны шаблоны типов данных. Наиболее употребляемые: стеки, списки, очереди, векторы, а также алгоритмы их обработки были помещены в стандартную библиотеку шаблонов STL. Ее авторы- Алекс Степанов, Мен Ли. В новой технологии .NET как таковой библиотеки нет, а им-ся классы коллекции. Среда .NET поддерживает 3 осн типа коллекции: -общего назначения, -специализированные,-ориентированные на побитовую организацию данных. Классы коллекций общего назначения. Служат для временного хранения данных во время работы пр-мы, реализуют осн.структуры данных: динамический массив, стек, очередь. Очередь – последовательный набор элементов одногои того же типа, кот. может сокращ-ся с одного конца(начала очереди), а расширяться с другого(конца очереди). В любой момент времени доступен только один элемент, кот. нах-ся в начале очереди. Удаляется тот элемент, кот. был первым. Очереди исп-ся в СУБД, в Интернете, в Моделировании. К-ции общего назначения раб. С данными типа object. К-ции спец назнач. – ориентированы на обработку данных конкретного типа, или на обработку данных уникальным способом. К-ции ориентированные на побитовую орг-ю данных служат для хранения групп битов и исп-т только побитовые операции:сдвиг вправо, влево. Они примен-ся для разработки драйверов.
-
Классы
Описание
Реализуемые интерфейсы
ArrayList
Динамически изменяемый по размерам массив объектов любого типа
IList, ICloneable, ICollection, IEnumerable
Hashtable
Коллекция объектов идентифицируемая по числовому ключу(наши классы должны переопределять метод System.Object.GetHashCode)
ICloneable, IDictionary, IEnumerable, ICollection
Queue
Стандартная очередь или последовательный список(каждый объект обрабатывается по порядку)
ICloneable, ICollection, IEnumerable
Stack
Стек (LIFO)
ICloneable, ICollection, IEnumerable
SortedList
Упорядоченный список, подобен словарю(доступ по ключу и индексу)
ICloneable, ICollection, IEnumerable, IDictionary