Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Типы данных в C#: типы значений, ссылочные типы и указатели

Переменные в C# делятся на три категории:

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

Напрямую содержат данные. Производны от System.ValueType. Примеры: int, char, float. При объявлении выделяется память под значение.

ТипПредставляетДиапазонЗначение по умолчанию
boolЛогическое значениеtrue/falsefalse
byte8-бит беззнаковое0–2550
char16-бит UnicodeU+0000–U+FFFF'\0'
decimal128-бит точное десятичное (28-29 знаков)(±7.9×10²⁸)/10⁰⁻²⁸0.0M
double64-бит double precision±5.0×10⁻³²⁴ – ±1.7×10³⁰⁸0.0D
float32-бит single precision±3.4×10³⁸0.0F
int32-бит знаковое-2,147,483,648 – 2,147,483,6470
long64-бит знаковое±9.22×10¹⁸0L
sbyte8-бит знаковое-128–1270
short16-бит знаковое-32,768–32,7670
uint32-бит беззнаковое0–4,294,967,2950
ulong64-бит беззнаковое0–1.84×10¹⁹0
ushort16-бит беззнаковое0–65,5350

Размер типа на конкретной платформе: sizeof(type) (в байтах).

Console.WriteLine("Size of int: {0}", sizeof(int));  // 4

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

Не содержат данные напрямую, а хранят ссылку (адрес) на данные в памяти. Несколько переменных могут ссылаться на один объект — изменение через одну видно через другие.

Встроенные ссылочные типы: object, dynamic, string.

Тип object

Базовый класс для всех типов (CTS). Псевдоним System.Object. Может принимать значение любого типа после преобразования.

object obj; obj = 100;  // boxing

Тип dynamic

Хранит любое значение. Проверка типов — во время выполнения (runtime).

dynamic d = 20;

Отличие от object: у object проверка на этапе компиляции.

Тип string

Псевдоним System.String, производен от object. Литералы: в кавычках "text" или verbatim @"text" (без экранирования).

String str = "Tutorials Point";
string verbatim = @"Tutorials Point";

Пользовательские ссылочные типы: class, interface, delegate (рассматриваются позже).

Типы-указатели (Pointer types)

Хранят адрес памяти другого типа. Возможности как в C/C++.

type* identifier;

Примеры

char* cptr;
int* iptr;

Используются в unsafe контексте (см. главу "Unsafe Codes").

Язык C

  1. Четыре ключевых типа шлицевых приводов крепежей: подробный разбор
  2. Термопары: типы, диапазоны и сравнение характеристик
  3. Мастерство C# переменных и примитивных типов данных: полное руководство
  4. Освоение преобразования типов в C#: неявное, явное, Parse и Convert
  5. Понимание типов данных C++: основы, модификаторы и лучшие практики
  6. Типы данных в C: int, float, char и другие — полное руководство
  7. Освоение типов данных в Python: практическое руководство
  8. Мастерство преобразования типов в Python: Полное руководство
  9. Примитивные типы данных в Java: полное руководство с примерами
  10. Освоение приведения типов в Java: от расширения к сужению и далее