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

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

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

Тип ценности

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

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

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

Тип Представляет собой Спектр Значение по умолчанию
bool Логическое значение Правда или ложь Ложь
байт 8-битное целое число без знака От 0 до 255 0
char 16-битный символ Юникода От U +0000 до U + ffff '\ 0'
десятичный 128-битные точные десятичные значения с 28-29 значащими цифрами (От -7,9 x 10 28 до 7,9 x 10 28 ) / 10 от 0 до 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
int 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
сбайт 8-битный целочисленный тип со знаком От -128 до 127 0
короткая 16-битный целочисленный тип со знаком От -32 768 до 32 767 0
uint 32-битный беззнаковый целочисленный тип От 0 до 4 294 967 295 0
Улонг 64-битный беззнаковый целочисленный тип От 0 до 18 446 744 073 709 551 615 0
ushort 16-битный беззнаковый целочисленный тип От 0 до 65 535 0

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

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

Тип ссылки

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

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

Тип объекта

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

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

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

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

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

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

dynamic <variable_name> = value;

Например,

dynamic d = 20;

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

Тип строки

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

Например,

String str = "Tutorials Point";

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

@"Tutorials Point";

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

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

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

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

type* identifier;

Например,

char* cptr;
int* iptr;

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