- •1. Эволюция языков программирования. Что такое net?
- •Internet и появление языка Java.
- •2.Компоненты платформы net.
- •3.Модель выполнения приложения в среде .Net Framework. Промежуточный язык Microsoft (Microsoft Intermediate Language, msil). Сборки.
- •4. Обзор встроенных типов данных c#. Применение встроенной функциональности типов данных.
- •5.Операции ввода/вывода. Формат вывода. Пространство имён System. Класс System.Math.
- •6.Операции, операторы и выражения в c# .
- •Операторы
- •7. Массивы в c# (одномерные и двумерные). Класс System.Random, применение его методов для создания массива случайных чисел. Класс System.Array, использование его методов и свойства Length.
- •8. Структуры в c#, создание структуры.
- •9. Понятие объектно-ориентированного программирования.
- •10. Классы в c#. Члены класса: методы, поля, свойства и события. Форма определения класса.
- •11. Типы значений и ссылочные типы. Динамическое использование памяти: стеки и кучи. Упаковка и распаковка.
- •12. Конструкторы и деструкторы. Сборка «мусора».
- •13. Определение пользовательских методов класса. Модификаторы доступа к методам класса. Параметры методов класса, передача аргументов. Модификаторы ref, out, params параметров методов.
- •14. Возвращение методами объектов класса. Возвращение методами массивов.
- •15. Общие (статические) члены класса. Доступ к общим членам. Ограничения на static-методы.
- •Ограничения на static-методы.
- •16.Область видимости и время существования переменных. Преобразование и приведение типов.
- •17.Обработка исключительных ситуаций.
- •18.Перегрузка методов. Перегрузка конструкторов.
- •19.Перегрузка операторов. Перегрузка бинарных, унарных и операторов отношений.
- •20. Инкапсуляция и свойства. Формат записи свойств.
- •21.Индексаторы. Специальные приемы построения типов. Создание одномерного индексатора.
- •22.Создание двумерного индексатора.
- •23.Механизмы реализации инкапсуляции в c#.
- •24.Базовые классы и наследование. Доступы к членам классов.
- •25.Конструкторы и наследование.
- •26.Ссылки на базовый класс и объекты производных классов.
- •27.Виртуальные методы и их переопределение.
- •28.Использование абстрактных классов.
- •29.Механизмы реализации полиморфизма в c#.
- •30.Интерфейсы. Реализация интерфейсов. Стандартные интерфейсы среды .Net Framework.
- •31.Коллекции. Классы коллекций общего назначения.
- •32.Делегаты. Назначение делегатов. Многоадресатная передача.
- •33.События. Объявление и генерация событий. Реализация обработчиков событий
- •34.Обзор технологий программирования Windows-приложений.
- •35.Архитектура Windows Forms. Класс Form.
- •36.Элементы управления формы
31.Коллекции. Классы коллекций общего назначения.
С помощью интерфейсов можно реализовать не только множественное наследование, но и разработать коллекции классов. Коллекции упрощают программирование, предлагая уже готовые решения для построения структур данных, разработка кот. «с нуля» отлич-ся большой трудоемкостью. Слова коллекции, семейства, контейнеры – это слова-синонимы. самая примитивная коллекция – это System.Array. но ограничение этой коллекции состоит в том, что невозможно динамически управлять размером массива при добавлении или удалении элементов. Коллекции реализуют технологию обобщенного пр-мирования. Оно появилось еще в языке С++. Целью обобщенного пр-мирования явл. создание прграммного кода, независимо от типов данных. Для этого были разработаны шаблоны типов данных. Наиболее употребляемые: стеки, списки, очереди, векторы, а также алгоритмы их обработки были помещены в стандартную библиотеку шаблонов STL. Ее авторы- Алекс Степанов, Мен Ли. В новой технологии .NET как таковой библиотеки нет, а им-ся классы коллекции. Среда .NET поддерживает 3осн.типа коллекции:-общего назначения,-специализированные,-ориентированные на побитовую организацию данных.
Классы коллекций общего назначения. Служат для временного хранения данных во время работы пр-мы, реализуют осн.структуры данных: динамический массив, стек, очередь. Очередь – последовательный набор элементов одногои того же типа, кот. может сокращ-ся с одного конца(начала очереди), а расширяться с другого(конца очереди). В любой момент времени доступен только один элемент, кот. нах-ся в начале очереди. Удаляется тот элемент, кот. был первым. Очереди исп-ся в СУБД, в Интернете, в Моделировании. К-ции общего назначения раб. С данными типа object. К-ции спец назнач. – ориентированы на обработку данных конкретного типа, или на обработку данных уникальным способом. К-ции ориентированные на побитовую орг-ю данных служат для хранения групп битов и исп-т только побитовые операции:сдвиг вправо, влево. Они примен-ся для разработки драйверов.
32.Делегаты. Назначение делегатов. Многоадресатная передача.
При прогр-нии под Windows по С и С++ осн. ср-во для решения проблемы: как созданные объекты смогут посылать аналоги. сообщения тем объектам, кот. их породили. Это ф-ция обратного вызова ( Callback function или просто Callback), кот. основана на исп-нии указателей на ф-ции в операт. памяти. При помощи этого ср-ва программист может обеспечить возможность обратного вызова одной функцией другой. Указатель на ф-цию – всего лишь адрес в операт. памяти. Было бы проще, если вместо «голого» адреса была бы какая-н. конструкция, кот. могла бы проверять при выполнении обратного вызова и кол-во передаваемых параметров и их тип, и возвращаемое значение. В С# такое ср-во наз.делегатом и вып. те же действия, что и указатель на ф-цию, но гораздо более безопасными и лучше соотв-ми пр-пами объектно-ориентир-го прогр-я. Делегат – объект, кот.может ссылаться на метод. При создании делегата в С# указывается не только имя метода, но и набор передаваемых ф-ции параметров (если они есть), и возвращаемое ф-цией значение. Делегат – спец.класс в С#. Делегаты ссылаются на один метод и определяются в период выполнения. Они широко примен. для асинхронной обработки и добавления нестанд. кода к коду классов. Делегаты могут исп.для многих целей, включая методы обратного вызова, определение статических методов и обработку событий. Тип делегата определяется сигнатурой метода, кот.м.б. вызван ч-з каждый конкретный экземпляр. Делегат можно использовать как обычную переменную. Вызов делегата такой же как и вызов обычной ф-ции. Делегат объявляется с пом. ключ. слова delegate. Общая форма:
Delegate тип возврата имя (список_параметров) Здесь тип возврата представляет собой тип значений, возвращаемых методами, кот. делегат этот будут описывать. Делегат может вызывать только такие методы, у кот. тип возвращаемого значения и список параметров совпадает с соотв. эл-ми объявления делегата. Многоадресная передача. Одна из самых интересных возможностей делегата – поддержка многоадресной передачи – это СП-сть созд.список вызовов, методов, кот. должны автомат. вызываться при вызове делегата. Достаточно создать экземпляр делегата, а затем для добавления методов в эту цепочку использовать оператор «+=». Для удаления метода из цепочки - «-=». Делегат с многоадресной передачей имеет одно ограничение: он должен возвращать тип void.