Все типы данных в языка C# являются производными базового класса
Object, и, таким образом, наследуют все его члены. Описание класса
Object содержится в пространстве имен
System. Класс
Object обладает статическими методами:
- Equals(Object, Object) проверяет равенство двух указанных экземпляров объектов, возвращает логическое значение.
- ReferenceEquals(Object, Object) проверяет, являются ли переданные объекты одним и тем же объектом, возвращает логическое значение.
К нестатическим методам класса
Object относятся
- Equals(Object) – вызывается для конкретного экземпляра и проверяет равенство этого экземпляра объекту, переданному в качестве аргумента, возвращает логическое значение.
- Finalize() – пытается освободить ресурсы памяти, занимаемые объектом.
- GetHashCode() – генерирует хэш-код для объекта.
- GetType() – возвращает тип текущего объекта.
- MemberwiseClone() – создает еще один объект того же типа и копирует в него все данные нестатических полей текущего объекта.
- ToString() – преобразует объект к строковому представлению.
Все типы данных C#, унаследованные от класса
Object, можно разделить на:
- Простые данные – для использования данных таких типов достаточно указать только имя переменной или величину константы. К ним относятся логические значения, целые и вещественные числа, а также символьные значения.
- Агрегирующие данные – данные, содержащие внутри себя несколько значений полей. К ним относятся массивы, перечисления, структуры, классы.
Другое деление типов данных на
- Базовые, или встроенные – это типы данных, которые содержатся в стандарте языка. К ним относятся простые базовые типы, а также строковый тип string.
- Библиотечные – это типы, которые содержатся в библиотеках, обычно .NET Framework. Чтобы использовать библиотечные типы данных необходимо знать их поля и методы, а также пространство имен, в котором они описаны.
- Пользовательские – определенные программистом.
В таблице перечислены встроенные типы языка C#, их размер и диапазон представления.
Тип данных | Псевдоним .NET Framework | Размер, байт | Диапазон |
byte |
System.Byte |
1 |
-128...127 |
sbyte |
System.SByte |
1 |
0...255 |
short |
System.Int16 |
2 |
-32768...32767 |
ushort |
System.UInt16 |
2 |
0...65535 |
int |
System.Int32 |
4 |
2 147 483 648 ... 2 147 483 647 |
uint |
System.UInt32 |
4 |
0 ... 4 294 967 295 |
long |
System.Int64 |
8 |
-9 223 372 036 854 775 808 ... 9 223 372 036 854 775 807 |
ulong |
System.UInt64 |
8 |
0 ... 18 446 744 073 709 551 615 |
bool |
System.Boolean |
1 |
True, False |
float |
System.Single |
4 |
±1,5×10−45 ... ±3,4 × 1038 |
double |
System.Double |
8 |
±1,5×10−45 ... ±3,4 × 1038 |
decimal |
System.Decimal |
16 |
±1,0×10−28 ... ±7,9 × 1028 |
char |
System.Char |
2 |
Символ Юникода |
string |
System.String |
Строка символов Юникода |
Все перечисленные типы, за исключением
string, являются простыми.
Поскольку C# является языком со строгой типизацией данных, любая переменная перед ее использованием должна быть объявлена. Причем область видимости переменной ограничивается пространством имен, в котором она объявлена.
Для объявления переменных используется следующий синтаксис.
Без инициализации
С инициализацией
Если необходимо объявить несколько переменных одного типа, то они могут быть записаны после названия типа через запятую.
Если переменная объявлена без инициализации, ей присваивается значение по умолчанию, равное 0.
Целочисленные данные
Встроенные типы данных языка C# включают 1-байтное, 2-байтное, 4-байтное и 8-байтное представление целочисленных данных в знаковой и беззнаковой форме.
Для знаковой формы представления старший разряд числа отводится под хранение его знака, поэтому диапазон представления значащей части чисел со знаком в 2 раза меньше, чем для беззнаковых.
Для инициализации целочисленных данных чаще всего используются целочисленные константы, записанные с помощью цифр десятичной или шестнадцатеричной системы счисления. Шестнадцатеричная константа начинается с символов
0x или
0X. Для отрицательных констант используется предшествующий символ
−ю
Пример объявления целочисленных переменных:
Все целочисленные данные имеют константные поля
MaxValue и
MinValue, содержание максимальное и минимальное значения, которые могут быть представлены данными соответствующего типа.
Логические данные
Логические данные представлены логическим типом
bool. Несмотря на то, что данные логического типа могут принимать только одно из двух значений
True или
False, объем памяти, отводимый для хранения логических переменных составляет 1 байт.
Вещественные данные
Представление вещественных данных представляет собой диапазон, симметричный относительно нуля.
При выполнении операций с плавающей точкой не создаются исключения, а в исключительных ситуациях возвращается 0 (в случае слишком маленького значения), бесконечность
PositiveInfinity (в случае большого положительного значения) или
NegativeInfinity (в случае большого по величине отрицательного значения) или нечисловое значение (NaN) если операция с плавающей точкой является недопустимой.
Для инициализации вещественных чисел могут использоваться константы. Вещественное число состоит из знака, целой части, дробной части и порядка числа. В качестве разделителя целой и дробной части в тексте программы используется точка. Порядок числа представляет собой степень 10, на которую следует умножить значащую часть вещественного числа.
Примеры объявления вещественных констант
Представление вещественного числа со знаком включает в себя целую часть, дробную часть и порядок числа.
По умолчанию все вещественные константы имеют тип
double. Если последним символом константы указан суффикс
f или
F, константа имеет тип
float. Если последним символом константы указан суффикс
m или
M, константа имеет тип
decimal.
В силу особенностей представления вещественных чисел в разрядной сетке вычислительной машины, при работе с вещественными числами могут возникнуть проблемы, связанные с точностью их представления. Наименьшее целое вещественное число, которое может быть представлено в разрядной сетке
float или
double определяется константным полем
Epsilon этих типов.
Тип
decimal обладает более точным и узким диапазоном по сравнению с типами
float и
double, и поэтому больше подходит для использования в финансовых расчетах.
Символьные данные
Символьная переменная представляет собой 2-байтное значение типа
char, являющееся символом таблицы Юникод. Для инициализации символьных данных могут использоваться константы следующих типов
Все символьные представления констант заключаются в апострофы
''.
Строковые данные
Несмотря на то, что строковый тип данных не является простым, он является встроенным типом языка C#. Строковый тип данных
string позволяет создавать строки любой длины, для инициализации которых используется последовательность символов, заключенная в кавычки
"...".
Тип данных
string также содержит
ряд методов для обработки строковых данных.
Закрепить использование базовых типов данных Вы можете в разделе
Типы данных
курса
Алгоритмика
Автор: Вставская Елена Владимировна
Написать комментарий: