从C#中的继承类获取变量

提问

我有一个问题,其中我有一个类(DrawableGameComponent)的列表,其中包含从DrawableGameComponent继承的不同类型的类的许多实例.

问题是我想从这些类之一访问变量,但是由于它们被声明为DrawableGameComponent,因此我无法访问DrawableGameComponent以外的任何其他变量.

主类:

List<DrawableGameComponent> entities = new List<DrawableGameComponent>();

“玩家”类:

public Color color;
public int score;

关于如何从主类访问这些变量的任何想法?

最佳答案

如果DrawableGameComponent是Player的基础,则可以执行以下操作:

foreach(DrawableGameComponent entity in entities)
{
    Player player = entity as Player;
    if(player != null)
    {
        Color col = player.color;
        int score = player.score;
    }
}

因为“是”,“原样”和转换比较昂贵,所以最好只执行一次(如上所述).

评论