C#对象引用另一个对象的属性

时间:2016-06-04 09:52:39

标签: c# .net equality

假设我的对象的属性在其生命周期内指向不同的对象。

MyClassInstance.MyProperty = MyOtherObject1;

稍后在应用程序中我得到了这个:

MyClassInstance.MyProperty = MyOtherObject2;

等等。我的理解是MyOtherObject1和MyOtherObject2将指向内存中的相同地址,我想避免。如何确保MyOtherObject1和MyotherObject2是完全不同的实体?

1 个答案:

答案 0 :(得分:2)

如果MyOtherObject1MyOtherObject2是不同的对象,使MyClassInstance.MyProperty等于它们,则不会导致这两个对象相同。

MyClassInstance.MyProperty = MyOtherObject1;

这意味着对MyClassInstance.MyProperty的任何更改都会更改MyOtherObject1,因为它们有效地指向相同的内存空间。

MyClassInstance.MyProperty = MyOtherObject2;

这意味着MyProperty现在指向与MyOtherObject2相同的内存空间。对MyProperty的更改将使MyOtherProperty1不受影响。