- •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 позволяет:
15. Деструкторы. Сборка «мусора».
Деструкторы – это специальный метод, который вызывается перед тем, как объект будет окончательно разрушен системой сбора мусора. Он обеспечивает гарантию «чистой» ликвидации объекта. Деструктор используется для операций освобождения памяти, выделенной для объектов класса. Формат записи: имя_класса ( ) код деструктора. Характеристики деструктора:1) имя деструктора совпадает с именем класса; 2) для деструктора неявно устанавливается спецификатор доступа public; 3) деструктору нельзя передать аргументы, поэтому в классе может быть определён только один деструктор. Деструктор не возвращает значения. Он вызывается в момент предшествующий процессу утилизации объекта. В теле действительно указываются действия, которые должны быть выполнены перед разрушением объекта. Сборка мусора. После генерации машинного кода он выполняется на определённой платформе. На этом этапе осуществляется очень важные действия- сборка мусора. Управление ресурсами в программе может оказаться довольно сложной задачей. Как правило, в приложении задействовано значительное количество ресурсов, например, записи без данных, сетевые соединения, пространство экрана монитора и т.д. В ситуации, когда после использования памяти, выделенной для ресурса, она не освобождается, или доступ к ресурсу продолжается несмотря на освобождение памяти, работа приложения становится нестабильной и непредсказуемой. Для предотвращения подобных проблем разработана программа сборщика мусора. Сборщик мусора – один из наиболее важных компонентов среды CLR. Он освобождает программиста от утомительной задачи контроля использования и своевременного освобождения памяти. Например, если программист установил сетевое соединение и больше не нуждается в нём, то сборщику мусора не будет известно о необходимости разрыва сетевого соединения до освобождения области памяти, выделенной для этого соединения. Поэтому программист должен в программном коде написать, как правильно следует освобождать ресурс. В среде .NET программисты создают такой код с помощью деструктора или методов CLOSE или DISPOSE. Сборщик мусора освобождает память, занимаемую неиспользуемыми объектами. Иными словами, при удалении последней ссылки на объект он становится кандидатом на удаление сборщиком мусора. Процесс вызова деструктора или прекращение дальнейшего использования объекта называют завершением (finalization). Основная проблема сборки мусора заключена в том, что невозможно точно предсказать, когда сборщик мусора освободит память. Обычно это происходит при недостатке объёма памяти для хранения данных создаваемых объектов. В результате могут возникнуть ситуации, когда деструктор объекта вообще не буде вызван. Даже на этапе завершения работы приложения CLR может пропустить процесс вызова деструктора объекта с целью ускорить завершение работы. Поэтому рекомендуется не выполнять важные операции освобождения памяти с помощью деструктора. Желательно создать отдельный метод, в который можно добавить операции по завершению работы (например, закрытие файла или обновление записей в базе данных). Затем необходимо определить явный вызов этого метода.