我有以下代码:
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);”仍然不会更新列表的值?
由于
答案 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);