所以,我有一个类GameObject,我用它作为许多子类的基础.
class GameObject()
{
    blah;
}
class AmmoBox() : Gameobject()
{
    different blah;
}
class Taco() : GameObject() {very different blah;}
Run Code Online (Sandbox Code Playgroud)
后来我在列表中使用它们,我想为每个子类指定不同的更新/ etc行为.
foreach (AmmoBox a in GameObjects) { }
foreach (Taco t in GameObjects) { }
Run Code Online (Sandbox Code Playgroud)
编译器抛出错误"无法将'GameObject'类型的对象强制转换为'AmmoBox'.我知道这是一个可怜的错误,我该怎么做呢?
您可以OfType根据类型使用过滤:
foreach (AmmoBox a in GameObjects.OfType<AmmoBox>()) { }
Run Code Online (Sandbox Code Playgroud)