我有一个名为post
的对象,我将一个名为newPost
的新变量声明为post
对象,然后
var newPost = post
但当我修改post
对象的任何属性时,newPost
对象的Modified Influences属性。
如何解决这个问题?
答案 0 :(得分:5)
您需要做的是许多可能的事情之一。这是一对需要考虑的事情。
var
newPost = post.Clone();
var newPost = new
Post(post);
要注意一点,你可能会想要做对象的deep clone or deep copy,这样如果你的类有任何对象属性,那么这两个实例并没有指向同一个引用他们的财产。
答案 1 :(得分:1)
您需要提供一些克隆对象的方法。正如其他评论者所说,您只是引用同一个对象。有关详细信息,请参阅此StackOverflow问题(第一个答案)Deep cloning objects
答案 2 :(得分:0)
这是一个非常基本的问题,我不能写一本书......
但这正是应该如何运作的。您正在设置“参考”变量; newPost
和post
都指向完全相同的对象,即class
,因此是引用类型,因此您应该预期对一个的所有更改也会影响另一个。
听起来你需要学习一本好的基础.NET编程书,并特别注意Value和Reference类型之间的差异。
'解决方案'是创建一个新对象并将旧对象的各个成员设置/复制到新对象,但是我担心在你挖掘更多内容之前,解决方案不会为你提供太久的服务。