【发布时间】:2010-02-19 13:52:12
【问题描述】:
说,我有课:
class M
{
public int val;
其中还有一个+ 运算符:
public static M operator +(M a, M b)
{
M c = new M();
c.val = a.val + b.val;
return c;
}
}
我有一个 List 的类对象:
List<M> ms = new List();
M obj = new M();
obj.val = 5;
ms.Add(obj);
其他一些对象:
M addie = new M();
addie.val = 3;
我可以这样做:
ms[0] += addie;
它确实可以按我的预期工作 - 列表中的值已更改。但是如果我想做
M fromList = ms[0];
fromList += addie;
由于显而易见的原因,它不会更改 ms 中的值。
但直觉上我希望ms[0] 在那之后也会发生变化。真的,我从列表中选择对象,然后用其他对象增加它的值。所以,由于我在添加之前在fromList 中保存了对ms[0] 的引用,所以我希望在执行后仍将它保存在fromList 中。
有什么方法可以实现吗?
【问题讨论】:
-
这里的 fromList 不应该只是某种参考吗?我对 C# 的了解还不够,无法告诉你如何操作。
-
ms[0] = ms[0] += addie;是我认为的普通代码