Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
Box box = new Box();
Change(box);
Console.WriteLine(box.Value);
void Change(Box b)
{
b.Value = 2;
b = new Box();
b.Value = 3;
}
class Box { public int Value; }2
- Ждать
3: объекты тоже передаются по значению, а значение — ссылка;b = new Box()меняет только копию в методе, и уboxостаётся объект с2. - Ждать
0: метод получает копию ссылки, а не объекта, поэтомуb.Value = 2меняет тот самый объект, к которому ведётbox.
- Что напечатает программа, если объявить параметр как
ref Box bи вызватьChange(ref box)? - Что она напечатает, если
Boxбудетstruct, а неclass?