Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Массивы языка С#. Статические и динамические массивы. Массивы объектов. Семантика присваивания.

Net Framework – единый каркас среды разработки. Исполнительная среда CLR. Понятие и функции среды разработки. Управляемый и неуправляемый код. Сборщик мусора.

Управляемый и неуправляемый код..Net Framework: особенности разработки приложений с использованием библиотеки.Net Framework. Необходимость установки нескольких версий библиотеки.

Единство каркаса 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). Под сборкой мусора понимается освобождение памяти, занятой объектами, которые стали бесполезными и не используются в дальнейшей работе приложения.

Классификация типов данных языка С#. Система типов.Net Framework и языка С#: особенности применения. Преобразования типов. Семантика присваивания. Преобразование к типу Object.

Семантика присваивания. Операции «упаковать» и «распаковать». Присваивание объектов различных типов. Преобразования ссылочных типов. Преобразования типов в выражениях. Преобразования внутри арифметического типа. Преобразования между ссылочными и значимыми типами.

Все типы можно разделить на четыре категории:

1. Типы-значения (value), или значимые типы.

2. Ссылочные (reference).

3. Указатели (pointer).

4. Тип void.

К значимым типам относятся: логический, арифметический, структуры, перечисление. Массивы, строки и классы относятся к ссылочным типам.

Арифметический тип, как показано в таблице, распадается на 11 подтипов. На рисунке показана схема преобразований внутри арифметического типа.

Массивы языка С#. Статические и динамические массивы. Массивы объектов. Семантика присваивания.

Массив задает способ организации данных. Массивом называют упорядоченную совокупность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов. Число индексов характеризует размерность массива. При объявлении массива границы задаются выражениями. Если все границы заданы константными выражениями, то число элементов массива известно в момент его объявления и ему может быть выделена память еще на этапе трансляции. Такие массивы называются статическими. Если же выражения, задающие границы, зависят от переменных, то такие массивы называются динамическими, поскольку память им может быть отведена только динамически в процессе выполнения программы, когда становятся известными значения соответствующих переменных. Массиву, как правило, выделяется непрерывная область памяти.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...