因此,我有一个“世界”对象,其中包含“瓷砖”列表。我也有一个“岛”对象,其中包含“瓦片”的“世界”对象列表中的某些“瓦片”。出于外部目的,我希望将世界和岛屿保留为对象/类。
我希望能够更改世界中列表中图块的值,并希望在图块类中观察到这些变化,反之亦然。
基本上我想要:
class World {
List<Tile> tiles;
}
class Islands {
// ref here is not syntax
List<ref Tile> tiles;
}
但是列表中的ref
不允许作为类型参数。无论如何,我可以在保持它们接近对象/类且没有重复的图块的同时实现此行为。
答案 0 :(得分:1)
对您的要求不是100%明确。但是,如果要共享图块,则World
和Island
引用都将自动看到那些图块的值更改,因为它们共享实例(必须是类,而不是结构)。不过这是被动。如果您需要在这些更改发生时发生某些事情(例如告诉World
或Island
进行注意),请实施一个在属性更改时引发的事件。
如果您需要完全替换一个图块并希望观察到该变化,请实施一个间接层;例如,具有TileReference
属性的Tile
。当该属性更改时,您可以引发一个事件,处理程序可以观察到全新的图块。