Встречается на 12% собеседований по C#
В чем разница между ссылочным и значимым типам
В C# типы делятся на ссылочные (reference types) и значимые (value types).
Значимые типы хранят данные напрямую в стеке (или внутри других объектов):
struct,enum, примитивы (int,double,boolи т. д.).- Копируются по значению (при присваивании создается новая копия).
- Не могут быть
null(кромеNullable<T>).
Ссылочные типы хранят ссылку на данные в куче:
class,interface,delegate,string, массивы.- Копируются по ссылке (изменения в одной переменной влияют на другую).
- Могут быть
null.
Пример:
csharp
// Значимый тип (struct)
int a = 5;
int b = a; // Копирование значения
b = 10; // a останется 5
// Ссылочный тип (class)
var list1 = new List<int> { 1, 2, 3 };
var list2 = list1; // Копирование ссылки
list2.Add(4); // list1 тоже изменитсяСледующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы