- •1. Net Framework – единый каркас среды разработки. Исполнительная среда clr. Понятие и функции среды разработки. Управляемый и неуправляемый код. Сборщик мусора.
- •2. Управляемый и неуправляемый код. .Net Framework: особенности разработки приложений с использованием библиотеки .Net Framework. Необходимость установки нескольких версий библиотеки.
- •3. Единство каркаса Framework .Net. Встроенные примитивные и структурные типы.
- •4. Классификация типов данных языка с#. Система типов .Net Framework и языка с#: особенности применения. Преобразования типов. Семантика присваивания. Преобразование к типу Object.
- •6. Массивы языка с#. Статические и динамические массивы. Массивы объектов. Семантика присваивания.
- •7. Строки c#. Классы String и StringBuilder. Назначение, основные возможности, отличие.
- •8. Строки c#. Класс String. Конструкторы класса. Методы работы со строками.
- •9. Строки c#. Класс String. Методы Join и Split.
- •10. Строки c#. Класс StringBuilder. Конструкторы класса. Методы работы со строками. Основные методы. Емкость буфера.
- •11. Структуры c#. Синтаксис. Возможные ситуации использования классов и структур. Перечисления в c#. Назначение. Синтаксис.
- •12. Классы в c#. Роль классов в ооп. Синтаксис классов в c#: обычных, абстрактных, универсальных. Поля и методы классов. Области видимости.
- •13. Процедуры и функции на примере языка с#. Определение. Синтаксис. Использование ключевых слов для передачи параметров.
- •14. Классы в c#. Методы-свойства. Назначение. Синтаксис. Пример описания.
- •15. Классы в c#. Статические поля и методы. Конструкторы и деструкторы. Статический конструктор класса: пример объявления и использования.
- •16. Классы в c#. Отношения между классами. Клиенты и наследники. Отношение вложенности. Расширение клиента класса.
- •17. Классы в c#. Отношения между классами. Отношения между клиентами и поставщиками.
- •18. Классы в c#. Наследование. Конструкторы родительских классов и классов потомков. Возможности изменения классом потомком методов родительского класса.
- •19. Классы в c#. Статический контроль типов и динамическое связывание. Реализация полиморфизма.
- •20. Классы в c#. Абстрактные классы. Классы без потомков.
- •21. Интерфейсы в c#. Реализация интерфейса. Преобразование к классу интерфейса. Множественное наследование. Проблемы множественного наследования.
- •22. Функциональный тип в c#. Делегаты. Делегаты как свойства классов.
1. Net Framework – единый каркас среды разработки. Исполнительная среда clr. Понятие и функции среды разработки. Управляемый и неуправляемый код. Сборщик мусора.
2. Управляемый и неуправляемый код. .Net Framework: особенности разработки приложений с использованием библиотеки .Net Framework. Необходимость установки нескольких версий библиотеки.
3. Единство каркаса Framework .Net. Встроенные примитивные и структурные типы.
В каркасе Framework .Net можно выделить два основных компонента:
• статический - FCL (Framework Class Library) - библиотеку классов каркаса;
• динамический - CLR (Common Language Runtime) - общеязыковую исполнительную среду.
Каркас стал единым для всех языков среды. Поэтому, на каком бы языке программирования не велась разработка, она использует классы одной и той же библиотеки. Многие классы библиотеки, составляющие общее ядро, используются всеми языками. Отсюда единство интерфейса приложения, на каком бы языке оно не разрабатывалось, единство работы с коллекциями и другими контейнерами данных, единство связывания с различными хранилищами данных и прочая универсальность.
Важной частью библиотеки FCL стали классы, задающие примитивные типы - те типы, которые считаются встроенными в язык программирования. Типы каркаса покрывают все множество встроенных типов, встречающихся в языках программирования. Типы языка программирования проецируются на соответствующие типы каркаса. Тип, называемый в языке Visual Basic - Integer, а в языке C# - int, проецируется на один и тот же тип каркаса System.Int32.
Частью библиотеки стали не только простые встроенные типы, но и структурные типы, задающие организацию данных - строки, массивы, перечисления, структуры (записи).
Компиляторы языков программирования, включенные в Visual Studio .Net, создают модули на промежуточном языке MSIL (Microsoft Intermediate Language), называемом далее просто - IL. Фактически компиляторы создают так называемый управляемый модуль - переносимый исполняемый файл (Portable Executable или PE-файл). Этот файл содержит код на IL и метаданные - всю необходимую информацию как для CLR, так и конечных пользователей, работающих с приложением. О метаданных - важной новинке Framework .Net - мы еще будем говорить неоднократно. В зависимости от выбранного типа проекта, PE-файл может иметь уточнения exe, dll, mod или mdl.
Заметьте, PE-файл, имеющий уточнение exe, хотя и является exe-файлом, но это не совсем обычный, исполняемый Windows, файл. При его запуске он распознается как специальный PE-файл и передается CLR для обработки. Исполнительная среда начинает работать с кодом, в котором специфика исходного языка программирования исчезла. Код на IL начинает выполняться под управлением CLR (по этой причине код называется управляемым). Исполнительную среду можно рассматривать как своеобразную виртуальную IL-машину. Эта машина транслирует "на лету" требуемые для исполнения участки кода в команды реального процессора, который в действительности и выполняет код.
Еще одной важной особенностью построения CLR является то, что исполнительная среда берет на себя часть функций, традиционно входящих в ведение разработчиков трансляторов, и облегчает тем самым их работу. Один из таких наиболее значимых компонентов CLR - сборщик мусора (Garbage Collector). Под сборкой мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются в дальнейшей работе приложения.