//save the current origin value
Employee temp = Origin;
// do some staff with origin and it changes the origin value.
//restore origin to the temp
Origin = temp;
//here i expected the origin value restore to the temp but it doesn't.
изменение температуры с указанием источника. в другом слове и temp и origin имеют одинаковые значения !!!изменение временных переменных после инициирования
Я хочу сохранить Origin
значение и восстановить его, но если origin
изменяет также изменения temp
. Его вроде компилятор не инициирует temp
.
Я предполагаю, что это настоящее фундаментальное развивающее знание, но я не смог найти ответ. так жаль об этом.
UPDATE до сих пор я пытался их, но не из них работал:
var temp = Origin;
object tmp = temp;
Origin = (Employee)tmp;
var temp = new Employee();
temp = Origin;
Origin = temp;
, наконец, как дорогой @erikscandola сказал я копирую все свойства по одному в к temp
объекту и его работали. но это было очень сложно (предполагая, что Employee
- настоящий большой объект). есть ли лучший способ сделать такое? это действительно кажется легким.
Убедитесь, что вы понимаете разницу между [типами значений и типами ссылок] (https://msdn.microsoft.com/en-us/library/t63sy5hs.aspx), и вы поймете, что не так с вашим кодом. (Подсказка - кажется, вы используете ссылочные типы) – dotnetom
Сообщение недостает [MCVE], поэтому на него нельзя ответить, но вы, вероятно, найдете объяснение в http://stackoverflow.com/questions/5057267/what-is-the- разница между ними-а-референс-типа-и-значение-типа-в-с. –
@dotnetom большое вам спасибо. Я получаю это сейчас. его вид как темп, так и у Оргина одинаковая память. но как решить мою проблему? могу ли я создать временное значение со своей собственной памятью? – David