Программа выведет 1. Присваивание b = a копирует значение int, поэтому последующее изменение b не влияет на a.
Предсказать результат простого фрагмента C#
Программа выведет 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-связи. Это отличается от копирования ссылки на объект класса: там две переменные могут обращаться к одному изменяемому объекту.