Встречается на 19% собеседований по C#

Что такое boxing/unboxing

Boxing — это процесс преобразования значимого типа (value type) в ссылочный (object или интерфейс). При этом значение копируется в управляемую кучу (heap). Unboxing — обратное преобразование из ссылочного типа в значимый, с проверкой типа и копированием значения обратно в стек (stack).

Пример:

csharp
int num = 42;          // значимый тип (stack)
object boxed = num;    // boxing (heap)
int unboxed = (int)boxed; // unboxing (stack)

Нюансы:

  • Boxing создает новый объект в куче, что может влиять на производительность.
  • Unboxing требует явного приведения и может вызвать InvalidCastException, если типы не совпадают.
  • Для частого boxing/unboxing лучше использовать generics (List<int> вместо ArrayList).

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

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

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