嗯,很难用语言来解释。所以这里有一个例子。在 SDL .NET API 中,有一个名为的类SpriteCollection
,它被设计为……嗯……精灵的集合。然而问题在于,出于某种原因,开发人员决定不制作SpriteCollection
通用类,如 .NETList<>
类。所以,我想,它只能与Sprite
继承自的类或其他类一起使用Sprite
?无论如何,假设我Tile
来自Sprite
. 我向它添加了两个新属性:
class Tile : Sprite
{
public Tile(char symbol = default(char), bool solid = true)
{
Symbol = symbol;
Solid = solid;
}
public char Symbol
{
get;
set;
}
public bool Solid
{
get;
set;
}
}
现在,我怎样才能使用SpriteCollection
with Tile
s 并且仍然能够使用Tile
独占属性Solid
?
一个(可能是愚蠢的)解决方案可能是这样的:
Tile t = (Tile) myCollection[i];
if (t.Solid) { ... }
有没有更好的方法来做这样的事情?