Встречается на 12% собеседований по C#
Что такое Boxing
Boxing — это процесс преобразования значимого типа (value type) в ссылочный тип (object или интерфейс). При этом значение копируется из стека в управляемую кучу (heap), и создается ссылка на него. Это может повлиять на производительность из-за дополнительных аллокаций.
Unboxing — обратный процесс, извлечение значения из ссылочного типа обратно в значимый.
Пример:
csharp
int number = 42; // value type (stack)
object boxed = number; // boxing (heap)
int unboxed = (int)boxed; // unboxing (stack)Нюансы:
- Boxing происходит неявно при присваивании value type в
objectили интерфейс (например,IComparable). - Unboxing требует явного приведения и может вызвать
InvalidCastException, если типы не совпадают. - Частый boxing в циклах или критичных участках кода может создать нагрузку на GC.
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы