c#如何检查某个对象是否属于某种类型

时间:2014-04-15 15:00:38

标签: c# arrays object xna equals

我只是想知道检查某些东西的对象类型的过程是什么。

基本上我有一个父对象数组,我想检查其中一个对象是否属于特定的子类型。

更具体地说,我想检查一下GameScreen对象是否包含GameplayScreen类型的GameScreen对象。

        GameScreen[] screens = mScreenManager.GetScreens();

        // loop through array and check if the object equals gameplayscreen


        }

2 个答案:

答案 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执行相同的操作。