【发布时间】:2011-07-29 16:25:50
【问题描述】:
我有一些 Foo 对象包含在 Bar 对象中:
class Foo
{
int uniqueId; // every Foo has a different ID.
List<int> data;
}
class Bar
{
Foo foo = new Foo();
}
有时我想合并属于不同 Bars 的 Foo 对象如下:
public void MergeWith(Bar otherBar)
{
this.foo.uniqueId = otherbar.foo.uniqueId;
this.foo.data.AddRange(otherbar.foo.data);
otherBar.foo = this.foo;
// Now both Bar objects refer to the same Foo, which contains all the data.
}
Bar bar1;
Bar bar2;
bar1.MergeWith(bar2);
这很好。问题是这些 Bar 对象已经将它们的Foo 对象的引用传递给Baz 对象。 Baz 有一个 List<Foo>,它是从多个来源收集的。
如何让Baz 对象知道它们的Foos 何时过时? Foo 对象是否应该引用其“较新的”Foo 链表样式?还是有更好的办法?
【问题讨论】:
-
您能说明
Baz对象如何从Bar获取Foo引用吗?谁负责设置Baz.Foos?