Встречается на 8% собеседований по C#
В чем разница между ссылочным и значимым типом данных
Ссылочные типы хранят ссылку на данные в куче, а значимые — сами данные в стеке (или в куче, если являются полями класса).
Ключевые отличия:
- Расположение: значимые — стек (быстрый доступ), ссылочные — куча (управляется GC).
- Присваивание: значимые копируются целиком, ссылочные — копируется только ссылка.
- Null: значимые не могут быть
null(кромеNullable<T>), ссылочные — могут. - Наследование: значимые не могут наследоваться (кроме
structотValueType).
Пример:
csharp
// Значимый тип (struct)
int a = 5;
int b = a; // Копирование значения
b = 10; // a остаётся 5
// Ссылочный тип (class)
var list1 = new List<int> { 1, 2 };
var list2 = list1; // Копируется ссылка
list2.Add(3); // list1 тоже изменится Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы