我想知道某个对象是否是某个类型的子类。我有3个班级:Participant
,Human : Participant
和AI : Participant
,其中的实例按如下方式实施:
Participant player1 = new Human();
Participant player2 = new AI();
我已经将这些玩家放在participants[2]{ player1, player2 };
和变量currentParticipant
中,以跟踪他们是谁。
我想检查participants[currentParticipant]
是否属于AI
类型,我这样做了:
private void CheckParticipantsTurn(int currentParticipant)
{
if(participants[currentParticipant] is AI)
{
participants[currentParticipant].AiMove(); //currently empty
MessageBox.Show("Ai moved");
}
ChangeCurrentParticipant(currentParticipant); //switches current participant
}
然而,它似乎永远不会将player2
视为AI - 它将其视为参与者。
问题:
如何检查播放器2是否为AI类型,而不是参与者?
答案 0 :(得分:1)
您可以检查(参与者[currentParticipant] .GetType()== typeof(AI))