Категории: Все - строки - классы

по Светлана Назарова 6 лет назад

315

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

В языке программирования C# существует несколько типов данных, которые играют ключевую роль в построении программ. Одним из основных типов являются встроенные типы и пользовательские структуры, созданные с помощью ключевого слова struct.

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

К типам значений относятся большинство встроенных типовC# и типы (в том числе и пользовательские), созданные с применением ключевого слова struct (т.е. так называемые структуры).

Две переменные ссылочного типа могут ссылаться на один и тот же объект, поэтому может случиться так, что операции над одной переменной затронут объект, на который ссылается другая переменная.

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

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

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

Исходный базовый класс для всех типов - [object]

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

string: хранит набор символов Unicode. Представлен системным типом System.String. Этому типу соответствуют символьные литералы.

представляет последовательность элементов в кодировке UTF-16

Пользовательские типы в формате [class <название класса> {...}]

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

Массивы

Типы массивов можно сформировать, просто введя квадратные скобки после имени типа

Типы массивов не требуется объявлять перед использованием.

Например, int[] является одномерным массивом значений типа int, а int[,] — двумерным массивом значений типа int, тогда как int[][] представляет собой одномерный массив одномерных массивов значений типа int.

Многомерные

int[,]

Одномерные

int[]

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

Простые типы
Целочисленный без знака

byte

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

представляет элемент в кодировке UTF-16

ushort

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

uint

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

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

long

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

int

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

short

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

sbyte

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

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

bool: хранит значение true или false (логические литералы). Представлен системным типом System.Boolean

используется для представления логических значений, которые могут иметь значение или

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

decimal: хранит десятичное дробное число. Если употребляется без десятичной запятой, имеет значение от 0 до +/–79 228 162 514 264 337 593 543 950 335; если с запятой, то от 0 до +/–7,9228162514264337593543950335 с 28 разрядами после запятой и занимает 16 байт. Представлен системным типом System.Decimal

Тип данных для финансовых и денежных расчетов

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

double: хранит число с плавающей точкой от ±5.0*10-324 до ±1.7*10308 и занимает 8 байта. Представлен системным типом System.Double

поfloat: хранит число с плавающей точкой от -3.4*1038 до 3.4*1038 и занимает 4 байта. Представлен системным типом System.Singleдтема

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

char: хранит одиночный символ в кодировке Unicode и занимает 2 байта. Представлен системным типом System.Char. Этому типу соответствуют символьные литералы

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

Типы значений, допускающие значение Null, не нужно отдельно объявлять перед использованием. Для каждого обычного типа значений <тип>, который не допускает значение Null, существует идентичный тип <тип>?, который отличается только тем, что может содержать значение null. Например int? — это тип, который может содержать любое 32-разрядное целое число или значение null.

Типы структур
представляет структуру с данными-членами и функциями-членами. Но в отличие от классов, структуры являются типами значений и обычно не требуют выделения памяти из кучи. Типы структуры не поддерживают определяемое пользователем наследование, и все типы структуры неявно наследуют от типа object.

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

Отдельный тип со списком именованных констант

Пользовательские типы в формате enum E {...}

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

Пользовательские типы в формате [struct <название> {...}]