Какие базовые (встроенные) типы данных вы знаете в .NET (C#)?

«Какие базовые (встроенные) типы данных вы знаете в .NET (C#)?» — вопрос из категории C# Core, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В C# существует набор встроенных (простых) типов значений, которые являются основой для построения более сложных структур. Они определены в пространстве имен System и имеют соответствующие ключевые слова-алиасы в C#.

Основные категории встроенных типов:

  • Целочисленные (со знаком): sbyte (System.SByte), short (System.Int16), int (System.Int32), long (System.Int64).
  • Целочисленные (без знака): byte (System.Byte), ushort (System.UInt16), uint (System.UInt32), ulong (System.UInt64).
  • Числа с плавающей запятой: float (System.Single), double (System.Double).
  • Десятичное число (для финансовых расчетов): decimal (System.Decimal).
  • Логический тип: bool (System.Boolean).
  • Символьный тип: char (System.Char) — представляет один UTF-16 код.

Также к фундаментальным типам часто относят:

  • Структуры даты и времени: DateTime (System.DateTime), DateTimeOffset, TimeSpan (System.TimeSpan).
  • Особый тип: Guid (System.Guid) — глобальный уникальный идентификатор.

Примеры и особенности:

// Целочисленные
int count = 42; // 32-битное со знаком
uint pixels = 1024u; // 32-битное без знака
long bigNumber = 1_000_000_000L; // 64-битное

// Числа с плавающей запятой
float temperature = 36.6f; // Требуется суффикс 'f'
double pi = 3.14159; // Тип по умолчанию для дробных чисел
decimal price = 199.99m; // Для денег, требуется суффикс 'm'

// Логический и символьный
bool isEnabled = true;
char firstLetter = 'A';

// Дата и время
DateTime today = DateTime.Today;
TimeSpan duration = TimeSpan.FromHours(2.5);
Guid sessionId = Guid.NewGuid();

Эти типы являются типами значений (value types), что означает, что они хранят данные непосредственно в своей области памяти (обычно в стеке для локальных переменных) и копируются по значению.