Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#对象对另一个对象的引用#x27;s属性_C#_.net_Equality - Fatal编程技术网

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

C#对象对另一个对象的引用#x27;s属性,c#,.net,equality,C#,.net,Equality,假设一个对象的属性在其生命周期内指向不同的对象 MyClassInstance.MyProperty = MyOtherObject1; 在稍后的应用程序中,我得到以下信息: MyClassInstance.MyProperty = MyOtherObject2; 等等。我的理解是MyOtherObject1和MyOtherObject2将指向内存中相同的地址,这是我想要避免的。如何确保MyOtherObject1和MyotherObject2是两个完全不同的实体?如果MyOtherObje

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

MyClassInstance.MyProperty = MyOtherObject1;
在稍后的应用程序中,我得到以下信息:

MyClassInstance.MyProperty = MyOtherObject2;

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

如果
MyOtherObject1
MyotherObject2
是不同的对象,使
MyClassInstance.MyProperty
等于它们,将不会导致这两个实体相同

MyClassInstance.MyProperty = MyOtherObject1;
这意味着对MyClassInstance.MyProperty的任何更改都将更改MyOtherObject1,因为它们实际上指向相同的内存空间

MyClassInstance.MyProperty = MyOtherObject2;

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

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

MyClassInstance.MyProperty = MyOtherObject1;
这意味着对MyClassInstance.MyProperty的任何更改都将更改MyOtherObject1,因为它们实际上指向相同的内存空间

MyClassInstance.MyProperty = MyOtherObject2;

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

我不明白。。。将属性设置为
MyOtherObject2
不会将其与
MyOtherObject1
链接在一起。或者你是什么意思?如果它们是类,那么它们将只指向相同的内存地址,而您是这样做的:
MyOtherObject2=MyOtherObject1。我认为你的“问题”是虚构的。我不明白。。。将属性设置为
MyOtherObject2
不会将其与
MyOtherObject1
链接在一起。或者你是什么意思?如果它们是类,那么它们将只指向相同的内存地址,而您是这样做的:
MyOtherObject2=MyOtherObject1。我认为你这里的“问题”是虚构的。