複製引用類型下面是我的課從一個到另一個C#
public Class Test
{
int id {get;set;}
string name {get;set;}
}
我創建這個類的一個對象,並分配值。
var obj = new Test();
obj.id = 1;
obj.name = "test";
var newobj = obj;
newobj.name ="NewTest";
下面是輸出
Console.WriteLine(obj.name); //NewTest
Console.WriteLine(newobj.name); //NewTest
爲什麼當我改變存在於新的obj一個屬性的值obj的值正在改變。我知道它的解決方案,我不知道爲什麼我無法找到。如果我在newobj中更改了值,我不希望obj的值得到改變。
當您更改'newobj.name'時,'obj.name'的值正在改變,因爲它們是*相同的事物*。 'newobj'和'obj'都指向內存中的相同位置。它們只是對同一個*對象*的不同*引用*。如果你想創建一個真正的副本,你將不得不創建一個方法來構造一個新的Test(),並相應地設置這個新對象的屬性。 –
用換句話說 - newobj是obj引用的另一個引用 – JeffRSon
'Test'是一個引用類型。 –