我的问题涉及 C# 中对象的使用。我想我明白发生了什么,但我想知道为什么。由于我不会深入讨论的原因,我想用它的当前数据(当前状态)创建一个对象的临时副本。所以我想我可以创建一个新对象,将其分配给原始对象,然后更改原始对象。那时我会有两个处于不同状态的对象。但是发生的情况是,复制的对象最终看起来与第一个完全一样。这里有一些代码来说明:
Order o1 = new Order();
o1.property1 = "test 1";
Order o2 = new Order();
o2 = o1;
o1.property1 = "test 2";
但在这段代码的末尾,o1 和 o2 都将 property1 设置为“test 2”。我想我意识到所有对象都只是指针,所以如果你改变一个,它就会改变另一个,但我不明白为什么会这样,或者为什么它有用。我在这里缺少一些基本的东西吗?另外,完成我想做的事情的最佳方法是什么?即:存储对象的状态,进行更改,然后在必要时恢复。希望这是有道理的。