我正在 windows phone 8 中编写一段代码(c#)(与 windows 8 有同样的问题)。
我想知道,如何传递一个对象的值而不是他的引用。
让我用一个例子来解释:
public MyClass
{
private Foo foo //my object.
public void Init()
{
foo = new Foo();
foo.age = 5;
ChangeFooValue(foo);
}
private void ChangeFooValue(Foo temp)
{
temp.age = 10;
//I want to change temp and NOT foo.
//But at the end of this
//foo.age = 10;
//and
//temp.age = 10;
}
}
已解决: 我在课堂上有这个来创建深层副本:
public Foo DeepCopy()
{
Foo other = (Foo) this.MemberwiseClone();
return other;
}
ps:这可能是一个愚蠢的问题(如果是,请提供一些教程以便我自己解决它)。