说,我有一堂课:
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]
在那之后也会改变。真的,我从列表中选择对象,然后用其他对象增加它的值。因此,由于我在添加之前持有对ms[0]
in的引用fromList
,所以我希望在执行后仍然持有fromList
它。
有什么方法可以实现吗?