将对象的引用添加到列表中

时间:2011-05-10 14:59:10

标签: c# list pointers

我有以下代码:

Point a = new Point(3, 3);

List<Point> points = new List<Point>();

points.Add(a);

a = new Point(50,50);

a.X += 50; 

但是我想最后两行代码也会影响列表中的值;我该怎么做呢? 我的猜测是添加指向列表的指针?但我想即使那时“新点(50,50);”仍然不会更新列表的值?

由于

2 个答案:

答案 0 :(得分:1)

不,你不需要指针。可以认为对.NET世界中的对象的引用基本上等同于非托管代码世界中的指针。当您添加value types and reference types这两个事实时,事情变得有点棘手,但在这种情况下,直接在数组中修改对象或对象的引用就足够了。

因此,您可以执行以下任一操作:

points[0] = new Point(50, 50);

points[0].X = 50;
points[0].Y = 50;

(尽管你应该probably get into the habit将结构看作是不可变的,所以请考虑以上仅用于示例目的。)

答案 1 :(得分:0)

您可以直接在列表中访问该值:

points[0] = new Point(50, 50);