我不确定我想在 C# 中执行的操作称为什么,但我知道它可以在其他语言中完成。
假设我有三个变量并将它们设置为相同的值:
MyObject Ob1 = new MyObject(ID:1);
MyObject Ob2 = Ob1;
MyObject Ob3 = Ob1;
(假设这些变量不在同一个上下文中,我不能用它们代替一个,我也不知道它们是否存在。它们可以是一个、两个或数百个代表同一个对象......)
我知道我通过 对对象所做的Ob3
更改实际上会更改其中的对象(当然Ob1
,Ob2
它们都表示具有 ID:1 的同一个对象)。
Ob3
但是,如果我使用为 分配一些东西Ob3 = new MyObject(ID:2)
,这不会改变 和 的值Ob1
,Ob2
因为它们将继续表示 ID:1 的对象。
// What happens:
Ob3 = new MyObject(ID:2);
// Ob3 is no longer the same as Ob1 and Ob2, wich are still the ID:1 object.
我想要做的是一次分配所有三个变量,就像当我写一些对应的代码到时Ob3 = new MyObject(ID:2);
,所有其他变量都代表 ID:2 的对象,而不是 ID:1 了。
//What I want:
Ob3 = new MyObject(ID:2); //using the suited operators I don't know
//And Ob1 and Ob2 become the ID:2 object as well.
我知道可以使用 C++ 中的指针来完成(显然在声明和赋值中进行了一些更改),但我不想用非托管语言管理事物。那么是否有类似的方法可以在 C# 中进行“向后”分配?