问题
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
}
回答1:
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
回答2:
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.
来源:https://stackoverflow.com/questions/23087511/c-sharp-how-to-check-if-an-object-is-of-a-certain-type