c# how to check if an object is of a certain type

2019-09-13 19:10发布

I am just wondering what the process is for checking the object type of something.

Basically I have an array of parent objects and I want to check if one of those objects is of a particular child type.

more specifically, I want to check if an array of GameScreen objects contains a GameScreen object of type GameplayScreen.

        GameScreen[] screens = mScreenManager.GetScreens();

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


        }

2条回答
Viruses.
2楼-- · 2019-09-13 19:51

You can check the type using is operator like:

if(screens[0] is GamePlayScreen)

Or if you just need GamePlayScreen type objects from your array you can use :

GamePlayScreen[] items = screens.OfType<GamePlayScreen>().ToArray();

See: Enumerable.OfType. It uses System.Linq

查看更多
【Aperson】
3楼-- · 2019-09-13 19:56

Use the is keyword when you want to check a type.

class Foo {}
class SuperFoo : Foo {}

bool IsSuperFoo(Foo foo)
{
    if (Foo is SuperFoo) return true;
    return false;
}

You can do the same for your GamePlayScreen.

查看更多
登录 后发表回答