Встречается на 5% собеседований по Data Engineer

В чем разница между хранением в памяти ссылочных и значимых типов данных в C#

В C# значимые типы (value types) хранятся в стеке (или внутри объектов в куче), а ссылочные (reference types) — в куче, с указателем на них в стеке.

Значимые типы (int, struct, enum):

  • Хранят данные напрямую
  • Копируются при присваивании
  • Быстрее для доступа

Ссылочные типы (class, string, array):

  • Хранят ссылку на данные в куче
  • Присваивание копирует ссылку, а не данные

Пример:

csharp
int a = 5;  // значимый тип (стек)
int b = a;  // копирование значения

List<int> list1 = new List<int>();  // ссылочный тип (куча)
List<int> list2 = list1;  // копирование ссылки
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы