假設我有一個叫做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