Я пишу фрагмент кода (C#) в Windows Phone 8 (имел ту же проблему с окнами 8).Объект передан по ссылке, а не по значению
И мне интересно, как оценить значение одного объекта, а не его ссылку.
Позвольте мне объяснить, с одной Exemple:
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;
}
пс: Это может быть глупый вопрос (если это так, пожалуйста, предоставьте мне некоторый учебник, чтобы иметь возможность решить его самим).
температура на самом деле «передается по значению», это просто тип ссылки и, следовательно, поведение. Вы должны клонировать переданный объект. – Styxxy
Почему бы не использовать структуру вместо класса для вашего типа Foo? – mbm