Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
Point a = new Point();
a.X = 1;
Point b = a;
b.X = 2;
Move(a);
Console.WriteLine(a.X + " " + b.X);
void Move(Point p) { p.X = 10; }
struct Point { public int X; }1 2
- Ждать
10 10:Point— этоstruct, поэтомуPoint b = aкопирует поля, аMoveменяет свою копию точки, а неa. - Ждать
10 2: метод получает копию аргумента-структуры; чтобы изменить точку вызывающего кода, нуженref Point pи вызовMove(ref a).
- Что напечатает программа, если объявить
Pointкакclass? - Как изменить
Move, чтобы он сдвигал точку вызывающего кода?