向列表添加对对象的引用
本文关键字:引用 对象 列表 添加 | 更新日期: 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);