Боксинг и работа с типами в C#

В консоль будут выведены 5 и 12 на отдельных строках. При boxing в object копируется текущее значение int; изменение исходной переменной не меняет упакованную копию.

Короткий ответ

Что ответить на собеседовании

В консоль будут выведены 5 и 12 на отдельных строках. При boxing в object копируется текущее значение int; изменение исходной переменной не меняет упакованную копию.

Подробный разбор

Ответ с пояснениями

Условие

Что отобразится в консоль:

static void Example1()
{
    int number = 5;
    object boxed = number;
    number = 12;
    
    Console.WriteLine(boxed);
    Console.WriteLine(number);
}

Ответ

В консоль будут выведены 5 и 12 на отдельных строках. При boxing в object копируется текущее значение int; изменение исходной переменной не меняет упакованную копию.

Сначала number равен 5, и это значение сохраняется внутри boxed. Присваивание number = 12 затрагивает только локальную переменную.

Console.WriteLine(boxed) использует упакованное значение 5, затем Console.WriteLine(number) выводит 12. Object здесь не является ссылкой на саму переменную number.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее