0
我有包含在酒吧對象的某些富對象:C# - 合併同一類的兩個對象並更新所有引用?
class Foo
{
int uniqueId; // every Foo has a different ID.
List<int> data;
}
class Bar
{
Foo foo = new Foo();
}
有時候我想合併屬於不同的酒吧如下的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
對象知道他們的Foo
已過時? Foo
對象是否應該引用其「較新」Foo
鏈接列表樣式?或者,還有更好的方法?
你可以展示'Baz'對象如何從'Bar'獲取'Foo'引用?誰負責設置'Baz.Foos'? – 2011-04-05 07:30:36