向列表添加对对象的引用

本文关键字:引用 对象 列表 添加 | 更新日期: 2023-09-27 17:55:44

我有以下代码:

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);"仍然不会更新列表的值?

谢谢

向列表添加对对象的引用

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

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

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

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

(尽管您可能应该养成将结构视为不可变的习惯,因此仅出于示例目的考虑上述内容)。

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

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