我将一个'全局'对象作为参数传递给一个方法。然后我初始化一个新的对象实例,并将其设置为等于原始对象,在我的脑海中,我现在拥有该对象的2个实例。为什么我的传递对象被编辑
为什么当我改变第二个实例的第一个实例改变?我从来没有使用'ref'。
namespace myNamespace
{
public class myClass
{
private myObjectClass myGlobalInstance;
public void myMethod()
{
doSomething(myGlobalObject);
}
private String doSomthing(myObjectClass myObjectInstance)
{
myObjectClass newObject = myObjectInstance;
newObject.variable1 = "boo"; //this seems to change both newObject.variable1 as required AND myObjectInstance.variable1 and its calling classes object
}
}
}
myObjectClass NEWOBJECT = myObjectInstance;为myObjectInstance设置一个引用。试试[ReferenceEquals](https://www.google.de/webhp?sourceid = chrome-instant&ion = 1&espv = 2&ie = UTF-8#q = c%23 + ReferenceEquals)函数,如果两个对象在内存中为同一对象 –
,则返回true,因为它的参考副本不是浅的或深度复制 – Szer
这就是Value-和ReferenceTypes之间的区别... –