У меня есть эта строка кода:Изменение свойств объекта влияет на изменение свойства объекта B
SomeClass a = new SomeClass();
SomeClass b = a;
a.price = 15;
b.price = 20;
Console.WriteLine(a.price); // output 20
Сначала я создаёте объект, а затем объект B. Для объекта b я назначил объект a. Когда я инициализирую цену собственности для этого объекта, так как вы можете видеть, что цена объекта a равна 15, а b равна 20. Но когда вы назначаете 20 цене объекта b, в то же время изменения будут влиять на цену объекта a. Почему?
Я имею в виду, что происходит в памяти, чтобы вызвать это?
объект б представляет собой ссылку на объект а, указатель, если вы знаете, указатели, так что если а или б изменение другого отражает изменение – MEYWD
@MEYWD: 'b' не является объектом вообще. Это * переменная *. Значение 'b' совпадает с значением' a' - оба являются ссылками на один и тот же объект. Очень важно различать понятия переменных, ссылок и объектов. Изменение значения 'a' (для обращения к другому объекту) * * не сделает ничего с значением' b'. Это только изменение объекта, на которое они ссылаются, и это отражено. –
@JonSkeet Вы правы, я просто хотел объяснить это в простой форме, а по объекту i означал переменную. – MEYWD