Выбор ответа Junior Типы значений и ссылочные спрашивают часто обновлено

Присваивание структуры копирует данные

Вопрос

Что выведет код?

struct Point { public int X; }

var a = new Point { X = 1 };
var b = a;
b.X = 5;
Console.WriteLine(a.X);

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 1. Структура это тип значения: var b = a копирует все поля, и дальше a и b живут независимо.

Варианты ответа

  1. 1правильный ответ
  2. 5
  3. Ошибка компиляции: структуру нельзя изменить после создания
  4. 0

Разбор

Структура это тип значения: var b = a копирует все поля, и дальше a и b живут независимо. Изменение b.X не трогает a, поэтому печатается 1. Вариант 5 был бы верен для класса, где копируется ссылка. Изменять поля обычной (не readonly) структуры можно. 0 получилось бы, только если бы a не инициализировали.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме