- •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 позволяет:
23. Понятие стека. Класс «Стек из символов», его основные методы.
Стек — динамическая структура данных, представляющая из себя упорядоченный набор элементов, в которой добавление новых элементов и удаление существующих производится с одного конца, называемого вершиной стека.По определению, элементы извлекаются из стека в порядке, обратном их добавлению в эту структуру, т.е. действует принцип "последний пришёл — первый ушёл".
Наиболее наглядным примером организации стека служит детская пирамидка, где добавление и снятие колец осуществляется как раз согласно определению стека.
Стек можно организовать на базе любой структуры данных, где возможно хранение нескольких однотипных элементов и где можно реализовать определение стека: линейный массив, типизированный файл, однонаправленный или двунаправленный список. В нашем случае наиболее подходящим для реализации стека является однонаправленный список, причём в качестве вершины стека выберем начало этого списка.
Выделим типовые операции над стеком и его элементами: 1) добавление элемента в стек; 2) удаление элемента из стека; 3) проверка, пуст ли стек; 4) просмотр элемента в вершине стека без удаления; 5) очистка стека.
24. Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
Перегрузка операторов. C# позволяет определить значение оператора относит. создаваемого класса. Этот пр-с наз. перегрузкой оператора. Перегружая оператор мы расширяем его использование для класса. Перегрузки операторов тесно связаны с перегрузкой методов. Для перегрузки операторов исп-тся ключ. слово operator, позвол-е сделать операторный метод, кот. определяет действие оператора, связанное с его классом. Можно перегружать унарные и бинарные операции. Общий формат перегр.ун.опер-ра: public static тип возвр.знач operator <знак операции>(тип операнда) { //операция } Общий формат перегр.бин.опер-ра: public static тип возвр.знач operator <знак операции >(тип и имя операнда 1, тип и имя операнда 2) { //операция }
Если в один проект собрать модули, напис. на разных языках, то перегрузка операторов не будет работать. Выход – каждому перегруженному оператору создать аналог. обычный метод. public static Point AddPoint (Point T1, Point T2)
{ return new Point (T1.x+T2.x, T1.y+T2.y); }
public static Point SSubtractPoints (T1.x+T2.x, T1.y+T2.y);
{ return new Point ( T1.x-T2.x, T1.y-T2.y); }
Перегрузка ун.опер-ров для Point: public static Point operator-(Point Ob) { return new Point(-Ob.x,Ob.y); в Main(): T2=-T2; T2.Show();
Перегрузка оператора сравнения.
Перегрузим метод System Object Equals(): public override bool Equals (object 0) { if ((Point)0).x = = this.x && ((Point)0).y = = this.y) return true;
else return false; } public override int GetflashCode()
{ return this toString().GetHashCode(); }
public static bool Operator = = (Point T1, Point T2)
{ return T1.Equals(T2); }
// перегрузка // public static bool Operator ! = (Point T1, Point T2)
{ return ! T1. Equals(T2); }
Опер-ры отношений объектов класса нужно перег-ть только парами: < и >, <= и >=, = и !=.