Выбор ответа 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правильный ответ5- Ошибка компиляции: структуру нельзя изменить после создания
0
Разбор
Структура это тип значения: var b = a копирует все поля, и дальше a и b живут независимо. Изменение b.X не трогает a, поэтому печатается 1. Вариант 5 был бы верен для класса, где копируется ссылка. Изменять поля обычной (не readonly) структуры можно. 0 получилось бы, только если бы a не инициализировали.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Когда выбрать struct, а когда class
Следующий вопрос
Типы значений и ссылочные типы: главное
Термины по теме
Ещё по теме «Типы значений и ссылочные»
- Что такое boxing и unboxing
- Сравнение двух упакованных чисел через ==
- Когда происходит упаковка
- Переприсваивание параметра-класса
- default и конструктор структуры без параметров
- Число различных точек
- Сумма int с переполнением, как в unchecked
- Среднее с пропусками (int?)