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

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

Ссылочные типы

хранятся ссылки на нужные данные

типы классов

Исходный базовым классом для всех типов

object

Строки Юникода

string

Пользовательские типы в формате

class C {...}

определяет структуру данных, которая содержит данные-члены (поля) и функции-члены (методы, свойства и т. д.). Классы поддерживают механизмы одиночного наследования и полиморфизма, которые позволяют создавать производные классы, расширяющие и уточняющие определения базовых классов.

типы интерфейсов

Пользовательские типы в формате

interface I {...}

(интерфейс) определяет контракт в виде именованного набора открытых функций-членов. Объект типа class или struct, реализующий interface, должен предоставить реализации для всех функций-членов интерфейса. Тип interface может наследовать от нескольких базовых интерфейсов, а class или struct могут реализовывать несколько интерфейсов

типы массивов

Одно- и многомерные

int[]

int[,]

типы делегатов

Пользовательские типы в формате

delegate int D(...)

(делегат) представляющий ссылки на методы с конкретным списком параметров и типом возвращаемого значения. Делегаты позволяют использовать методы как сущности, сохраняя их в переменные и передавая в качестве параметров. Делегаты аналогичны типам функций, которые используются в функциональных языках. Также принцип их работы близок к указателям функций из некоторых языков, но в отличие от указателей функций делегаты являются объектно-ориентированными и строго типизированными.

поддерживают универсальные шаблоны, которые позволяют передавать им другие типы в качестве параметров.

Стек

структура данных, которая сохраняет элементы по принципу «последним пришёл — первым вышел» . Примером из жизни служит стопка тарелок. Скорость работы со стеком гораздо выше, чем с оперативной памятью, следовательно, использование стека повышает скорость работы программы

Куча

область динамической памяти, которая выделяется приложению для хранения данных (например объектов). Доступ к данным в куче осуществляется медленнее, чем к стеку. Переменные ссылочных типов хранят ссылки на данные

Типы значений

содержат непосредственно данные

простые типы

Целочисленный со знаком

sbyte

8 бит, в диапазоне от –128 до 127

short

16 бит, в диапазоне от –32 768 до 32 767

int

32 бита, в диапазоне от –2 147 483 648 до 2 147 483 647

long

64 бита, в диапазоне от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807

Целочисленный без знака

byte

8 бит, в диапазоне от 0 до 255

ushort

16 бит, в диапазоне от 0 до 65 535

uint

32 бита, в диапазоне от 0 до 4 294 967 295

ulong

64 бит, в диапазоне от 0 до 18 446 744 073 709 551 615

Символы Юникода

char

IEEE-представление с плавающей запятой

float

32 бита, в диапазоне от 1,5 × 10–45 до 3,4 × 1038, с точностью до 7 цифр

double

64 бита, в диапазоне от 5,0 × 10–324 до 1,7 × 10308, с точностью до 15 цифр

Десятичный с повышенной точностью

decimal

128 бит, в диапазоне по крайней мере от –7,9 × 10−28 до 7,9 × 1028, с точностью не менее 28 цифр

Логическое значение

bool

Типы структур

Пользовательские типы в формате

struct S {...}

типы перечисления

Пользовательские типы в формате

enum E {...}

является отдельным типом со списком именованных констант. Каждый тип enum имеет базовый тип, в роли которого выступает одним из восьми целочисленных типов. Набор значений типа enum аналогичен набору значений его базового типа

типы, допускающие значение Null

Расширения других типов значений, допускающие значение

Текущая тема