我只是想知道检查某些东西的对象类型的过程是什么。
基本上我有一个父对象数组,我想检查其中一个对象是否属于特定的子类型。
更具体地说,我想检查一下GameScreen对象是否包含GameplayScreen类型的GameScreen对象。
GameScreen[] screens = mScreenManager.GetScreens();
// loop through array and check if the object equals gameplayscreen
}
答案 0 :(得分:5)
您可以使用is
operator来检查类型:
if(screens[0] is GamePlayScreen)
或者,如果您只需要从阵列中输入GamePlayScreen
个对象,则可以使用:
GamePlayScreen[] items = screens.OfType<GamePlayScreen>().ToArray();
请参阅:Enumerable.OfType。它使用System.Linq
答案 1 :(得分:1)
如果要检查类型,请使用is
关键字。
class Foo {}
class SuperFoo : Foo {}
bool IsSuperFoo(Foo foo)
{
if (Foo is SuperFoo) return true;
return false;
}
您可以为GamePlayScreen执行相同的操作。