В консоль будут выведены 5 и 12 на отдельных строках. При boxing в object копируется текущее значение int; изменение исходной переменной не меняет упакованную копию.
Боксинг и работа с типами в C#
В консоль будут выведены 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.