0
public class ABC
{
public int x;
public int y;
}
ABC _prevABC;
ABC abc;
public void A()
{
_prevABC = new ABC();
_prevABC = abc;
abc.x = 10;
}
public void B()
{
abc = _prevABC;
}
在上述方法我稱爲A
然後B
,甚至然後abc.x
值10,其餘在A.更新分配對象數據到另一個對象與出通過參考在c#
因此,似乎即使我創建了ABC
的新對象,並用=
分配了它剛傳遞的參考。
如何分配輸出傳遞引用?
你需要做一個副本。基本上它看起來像你想使用一個結構,而不是一個類。 – juharr
或者只是該類的深層複製/克隆。 – HimBromBeere
首先,你創建一個新的ABC和**,然後把它扔在下一行**,**用'abc'引用替換**。然後,所有事情都會如你所期望的那樣:你仔細地將'_prevABC'和'abc'指向同一個對象。所以他們這樣做。如果你想要一份副本,請複製一份。你在這裏做的任何事都不做複製。您需要了解C#中引用和值類型之間的區別。 –