Предсказать результат простого фрагмента C#

Программа выведет 1. Присваивание b = a копирует значение int, поэтому последующее изменение b не влияет на a.

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

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

Программа выведет 1. Присваивание b = a копирует значение int, поэтому последующее изменение b не влияет на a.

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

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

Условие

Определите, что программа выведет при выполнении.

int a = 1;
int b = a;
b = 2;
Console.WriteLine(a);

Ответ

Программа выведет 1. Присваивание b = a копирует значение int, поэтому последующее изменение b не влияет на a.

После первых двух строк обе переменные содержат число 1, но это независимые значения. Строка b = 2 меняет только b, затем Console.WriteLine читает неизменённое a.

Так ведут себя присваивания значимых типов без ref-связи. Это отличается от копирования ссылки на объект класса: там две переменные могут обращаться к одному изменяемому объекту.

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

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

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

Подробнее