假设我有一个叫做Player
的抽象类。类GameAPlayer
和GameBPlayer
继承自Player
。反过来,几个抽象类分别从GameAPlayer
和GameBPlayer
继承。C#中的“虚拟列表”,以避免在继承类中的类型转换?
假设我有另一个叫做Engine
的抽象类,它承载List<Player>
。类GameAEngine
和GameBEngine
都从Engine
继承。我知道GameAEngine
中的所有球员都是GameAPlayer
类型的球员,并且GameBEngine
中的所有球员都属于GameBPlayer
类型。
,因为我使用Engine
本身名单我不能移动List<Player>
到GameAEngine
和GameBEngine
。
必须将类型转换Player
转换为GameAPlayer
和GameBPlayer
每次我在各自的引擎中使用列表看起来似乎是不清楚的。有什么办法可以避免必须这样做吗?
简单的解决办法是摆脱多余的类和属性添加到类。你有权质疑你的设计,它是不干净和无效的。 – 2011-12-14 19:00:27