Ответ
В 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), что означает, что они хранят данные непосредственно в своей области памяти (обычно в стеке для локальных переменных) и копируются по значению.