提问
我有一个问题,其中我有一个类(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;
}
}
因为“是”,“原样”和转换比较昂贵,所以最好只执行一次(如上所述).