
- •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 позволяет:
38. Классы ArrayList, Queue, Stack. Методы работы с различными структурами данных.
Под коллекцией понимается группа (набор) разнотипных объектов. Коллекции (C#, Java) называют еще семейства (VBA), контейнеры (C++). Коллекции стандартизируют способ обработки групп объектов в приложениях. Коллекции упрощают программирование, предлагая строить структуры данных не с нуля. Пример примитивной коллекции – System.Array. В нем есть такие методы как сортировка, инвертирование, очистка, перечисление. Но класс Array имеет свои ограничения, и наиболее важным из них является невозможность динамического переопределения размеров при добавлении и удалении элементов.
Коллекции общего назначения реализуют такие структуры данных для временного хранения информации как динамический массив, стек, очередь. Динамический массив – это массив, который может изменять свой размер при удалении и добавлении. Очередь – это последовательный набор элементов одного типа, который может сокращаться с одного конца, а расширяется с другого (конца очереди).
Классы |
Описание |
Реализуемые интерфейсы |
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 |
ArrayList. Экземпляр этого класса представляет собой массив переменной длины, объектами являются объектные ссылки. Point T1=new Point(5,8); T1 – объектная ссылка. Любой экземпляр создается с некоторым начальным размером. При превышении размера коллекция авторматически его увеличивает, при удалении – сокращает. Этот класс наиболее употребим, т.к. он использует интерфейс ArrayList, то в нем реализованы такие элементы, как индексатор: object this [ int index] { get; set; }
int Add(object value); // метод добавления объекта в коллекцию, возвращает индекс. void Clear(); // удаление всех элементов из массива void Insert(int index, object value) // метод вставки объекта по индексу. Помимо реализации интерфейсных членов в классе ArrayList имеются свои классы, конструкторы. Конструктор класса ArrayList: public ArrayList(); // создает пустой массив и его емкость элементов. public ArrayList(int capacity); // конструктор с параметром. public ArrayList(ICollection collect); Некоторые собственные коллекции классов ArrayList: AddRange(ICollection collect) // добавляем элементы из коллекции. Sort(IComparer comp) // сортирует динамический массив на основе метода сравнения CompareTo интерфейса IComparer. Binary Search(object value) // возвращает индекснайденного элемента или отриц. число и др. методы. В нем имеется св-во capacity – емкость массива.