Sobes.tech
Назад к вопросам
Junior — Middle
61

Можете назвать основные типы данных, используемые в языке C#?

Компании, где спрашивали
appfox

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

В C# основные типы данных обычно делят на значимые и ссылочные. Важно понимать, чем value type отличается от reference type, где хранится значение и как это влияет на поведение при присваивании и передаче в методы. Также ожидают, что будут названы базовые встроенные типы: числа, bool, char, string, массивы и object.

Определение:

В C# тип данных определяет, какие значения может хранить переменная и какие операции над ними доступны.
Все типы в языке можно условно разделить на две большие группы:

  • Значимые типы (value types) — хранят само значение; при присваивании обычно копируются.
  • Ссылочные типы (reference types) — хранят ссылку на объект; при присваивании копируется ссылка.

К основным встроенным типам относятся:

  • Целые числа: byte, sbyte, short, ushort, int, uint, long, ulong
  • Числа с плавающей точкой: float, double, decimal
  • Логический тип: bool
  • Символ: char
  • Строка: string
  • Объект: object
  • Массивы, а также пользовательские типы: class, struct, enum, record

Пример использования:

int age = 30;
double price = 99.95;
bool isActive = true;
char grade = 'A';
string name = "Alex";

object value = age; // boxing: int упакован в object

Пояснение кода:

В примере:

  • age — целое число типа int, это значимый тип.
  • price — число с дробной частью типа double.
  • isActive — логическое значение типа bool.
  • grade — один символ типа char.
  • name — строка, то есть ссылочный тип.
  • value — переменная типа object, которая может хранить значение любого типа; при присваивании int происходит упаковка boxing.

Если бы было нужно показать разницу между значимым и ссылочным типом, можно было бы увидеть, что при копировании int копируется само число, а при копировании string или объекта передается ссылка на один и тот же объект.

Ключевые моменты:

  • В C# важно различать значимые и ссылочные типы.
  • int, bool, char, decimal — это примеры встроенных значимых типов.
  • string и object — ссылочные типы.
  • decimal обычно используют для финансовых расчетов, а double — для инженерных и научных вычислений.
  • string в C# неизменяемый тип, поэтому любые изменения создают новую строку.
  • object — базовый тип для всех типов в C#, что важно для полиморфизма и boxing/unboxing.