Учебники

C # — Типы данных

Переменные в C # подразделяются на следующие типы:

  • Типы значений
  • Типы ссылок
  • Типы указателей

Тип ценности

Переменным типа значения можно присвоить значение напрямую. Они являются производными от класса System.ValueType .

Типы значений напрямую содержат данные. Некоторыми примерами являются int, char и float , в которых хранятся числа, алфавиты и числа с плавающей запятой соответственно. Когда вы объявляете тип int , система выделяет память для хранения значения.

В следующей таблице перечислены доступные типы значений в C # 2010.

Тип Представляет собой Спектр Значение по умолчанию
BOOL Логическое значение Правда или ложь Ложь
байт 8-битное целое число без знака От 0 до 255 0
голец 16-битный символ Юникода U +0000 до U + FFFF ‘\ 0’
десятичный 128-битные точные десятичные значения с 28-29 значащими цифрами (От -7,9 х 10 28 до 7,9 х 10 28 ) / от 10 до 28 0.0 млн
двойной 64-битный тип с плавающей запятой двойной точности (+/-) 5,0 x 10 -324 до (+/-) 1,7 x 10 308 0.0d
поплавок 32-битный тип с плавающей запятой одинарной точности От -3,4 х 10 38 до + 3,4 х 10 38 0.0f
ИНТ 32-разрядное целое число со знаком От -2 147 483 648 до 2 147 483 647 0
долго 64-разрядное целое число со знаком От -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 0L
SByte 8-разрядное целое число со знаком От -128 до 127 0
короткая 16-разрядное целое число со знаком От -32 768 до 32 767 0
UINT 32-разрядное целое число без знака От 0 до 4 294 967 295 0
ULONG 64-разрядное целое число без знака От 0 до 18 446 744 073 709 551 615 0
USHORT 16-разрядное целое число без знака От 0 до 65 535 0

Чтобы получить точный размер типа или переменной на конкретной платформе, вы можете использовать метод sizeof . Выражение sizeof (тип) возвращает размер хранилища объекта или типа в байтах. Ниже приведен пример получения размера типа int на любой машине:

Live Demo

using System;

namespace DataTypeApplication {
   class Program {
      static void Main(string[] args) {
         Console.WriteLine("Size of int: {0}", sizeof(int));
         Console.ReadLine();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —

Size of int: 4

Тип ссылки

Типы ссылок не содержат фактических данных, хранящихся в переменной, но содержат ссылку на переменные.

Другими словами, они относятся к области памяти. Используя несколько переменных, ссылочные типы могут ссылаться на ячейку памяти. Если данные в ячейке памяти изменяются одной из переменных, другая переменная автоматически отражает это изменение в значении. Примеры встроенных ссылочных типов: object , dynamic и string .

Тип объекта

Тип объекта является основным базовым классом для всех типов данных в C # Common Type System (CTS). Объект является псевдонимом для класса System.Object. Типам объектов могут быть назначены значения любых других типов, типов значений, ссылочных типов, предопределенных или пользовательских типов. Однако перед присвоением значений необходимо преобразование типов.

Когда тип значения преобразуется в тип объекта, он называется боксом, а с другой стороны, когда тип объекта преобразуется в тип значения, он называется распаковкой .

object obj;
obj = 100; // this is boxing

Динамический тип

Вы можете сохранить любой тип значения в переменной динамического типа данных. Проверка типов для этих типов переменных происходит во время выполнения.

Синтаксис объявления динамического типа —

dynamic <variable_name> = value;

Например,

dynamic d = 20;

Динамические типы аналогичны типам объектов, за исключением того, что проверка типов для переменных типа объекта выполняется во время компиляции, тогда как проверка для переменных динамического типа выполняется во время выполнения.

Тип строки

Тип String позволяет назначать любые строковые значения переменной. Тип string является псевдонимом для класса System.String. Это происходит от типа объекта. Значение для строкового типа может быть назначено с использованием строковых литералов в двух формах: в кавычках и @quoted.

Например,

String str = "Tutorials Point";

Строковый литерал @ в кавычках выглядит следующим образом —

@"Tutorials Point";

Определяемые пользователем типы ссылок: класс, интерфейс или делегат. Мы обсудим эти типы в следующей главе.

Тип указателя

Переменные типа указателя хранят адрес памяти другого типа. Указатели в C # имеют те же возможности, что и указатели в C или C ++.

Синтаксис для объявления типа указателя —

type* identifier;

Например,

char* cptr;
int* iptr;

Мы обсудим типы указателей в главе «Небезопасные коды».