我將一個'全局'對象作爲參數傳遞給一個方法。然後我初始化一個新的對象實例,並將其設置爲等於原始對象,在我的腦海中,我現在擁有該對象的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之間的區別... –