将对象数据分配到另一个对象中而不在c#中传递引用

时间:2017-09-22 15:23:01

标签: c# unity3d

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中更新了。

所以,即使我创建了ABC的新对象,并使用=指定了它只是传递引用。

如何分配传递参考?

1 个答案:

答案 0 :(得分:0)

_prevABC = abc行让你有问题,你将abc的引用分配给_prevABC。 如果你的类实际上只包含一些值,例如你给出的可以使用struct,因为它分配值而不是引用。

如果你想上课,那么你可以这样做:

_prevABC = new ABC();
_prevABC.x = abc.x;