Списки, как и все остальные переменные, содержат значения .С типом ссылки (который я предполагаю GoalPersonGroup
), значение является ссылкой .Если у меня есть следующее:
object a = ...;
object b = ...;
a = b;
Все, что я сделал, это взял значение из b
(которое является ссылкой) и скопировал это значение в a
.В случае ссылочного типа я могу выполнить операции над этим значением (например, вызов a.SomeProperty = "foo";
), и те же самые изменения состояния будут отражены в любом месте программы, где эта конкретная ссылка хранится в переменной.,Другими словами, если бы я проверял значение b.SomeProperty
, это было бы "foo"
.
Однако изменение значение в переменной не влияет на другие переменные, которые указываютк этому значению (за исключением случая ref
параметра).
Вы добавили значение, которое указывает на ссылку на ваш List
.Вы также присвоили то же значение свойству.Эти две разные ячейки памяти содержат одно и то же значение и, следовательно, указывают на один и тот же фактический объект.Но позже вы просто переназначаете значение свойства, что означает, что теперь оно имеет значение , отличное от того, что хранится в списке.