我不确定在C#中我要做什么操作,但我知道可以用其他语言完成操作。在单一代码行中分配许多变量C#
假设我有三个VAR和它们设置为相同的值:
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#中?
如果你要对待所有相同的东西,到处都有,其中有3个是什么意思?只需在所有地方使用Ob1就可以使用Ob2和Ob3,并且您将达到您所要求的 – 2013-02-28 19:21:39
^This。我看到你来自哪里,但变量只是对位置的引用,当你从引用改变属性时,你正在改变相同的位置。当您通过更改变量本身来更改实际位置时,它显然会更改其指向的位置。 – 2013-02-28 19:22:37
斯坦,这些变量不在同一个上下文中。 – 2013-02-28 19:31:42