在对象/类属性之间共享变量

所以我有一个包含“瓷砖”列表的“世界”对象。我还有一个“岛”对象,其中包含来自“世界”“瓷砖”对象列表中的某些“瓷砖”。出于外部目的,我想将世界和岛屿保留为对象/类。


我希望能够更改世界列表中图块的值,并在图块类中观察到这些更改,反之亦然。


基本上我想要:


class World {

    List<Tile> tiles;

}


class Islands {

    // ref here is not syntax

    List<ref Tile> tiles;

}

但是ref在列表中不允许作为类型参数。我可以通过某种方式实现此行为,同时使它们尽可能接近对象/类并且没有重复的图块。


摇曳的蔷薇
浏览 64回答 1
1回答

catspeake

不是 100% 清楚您的要求。但是,如果您想共享图块,那么World和Island引用都会自动看到这些图块值的变化,因为它们正在共享实例(必须是类而不是结构)。虽然这是被动的。如果您需要在这些更改发生时发生某些事情(例如,告诉World或Island查看和注意),那么实现一个在属性更改时引发的事件。如果你需要完全替换一个 tile 并想观察那个变化,那么就实现一个间接层;例如,TileReference具有Tile属性的 a。当该属性发生变化时,您可以引发一个事件,处理程序可以观察到全新的磁贴。
打开App,查看更多内容
随时随地看视频慕课网APP