Типы данных C#
Стандарт языка C++ включает следующий набор фундаментальных типов.
· Логический тип (bool).
· Символьный тип (char).
· Целые типы. Они могут отличаться размером: short, int, long, а также могут быть знаковыми (signed) или беззнаковыми (unsigned).
· Типы с плавающей точкой. Они также могут отличаться размерами: float, double и long double.
Тип void указывает на отсутствие информации.
К конструируемым типам относятся следующие:
· Указатели (например, char*).
· Ссылки (например, char&).
· Массивы (например, char[]).
Также язык позволяет разработчику конструировать собственные типы:
· Перечисляемые типы (enum).
· Структуры (struct).
· Классы.
В языке C# все типы можно рассматривать и под другим ракурсом, разделив их на четыре категории:
· Типы-значения (value).
· Ссылочные (reference).
· Указатели (pointer).
· Тип void.
Для ссылочного типа значение задает ссылку на область памяти в "куче" (heap), где расположен соответствующий объект. Для типа-значения значением являются собственно данные, а память для них выделяется в стеке.
Логический, арифметический, структуры, перечисление относятся типам-значениям. Массивы, строки и классы относятся к ссылочным типам.
И ссылочные, и обычные типы являются производными от базового класса object. В тех случаях, когда обычный тип должен вести себя как объект, создается оболочка (wrapper), которую можно рассматривать как ссылочный объект, помещенный в кучу, и в нее копируется значение переменной обычного типа. Оболочка автоматически помечается таким образом, что система знает, какое значение она содержит. Этот процесс назывется упаковкой (boxing), а обратный процесс - распаковкой (unboxing).
Упаковка происходит автоматически, для этого нужно только присвоить значение обычного типа переменной типа object. Упаковка и распаковка позволяют обрабатывать любой тип как объект. Например, в выражении
7.ToString(); целое число 7 упаковывается путем вызова функции Int32.ToString().
Массивы в C# могут быть многомерными (multidimensional) или невыровненными (jagged). Более сложные структуры данных такие, как стек и хеш-таблица определены в пространстве имен System.Collections.
Дата добавления: 2015-09-18 | Просмотры: 372 | Нарушение авторских прав
1 | 2 | 3 | 4 | 5 |
|