l'application de l'est opérandes ou instanceof dans une déclaration de cas
-
22-09-2019 - |
Question
Je suis en train de comprendre comment appliquer l'est opérandes ou instanceof dans une déclaration de cas pour déterminer quel type de données un objet d'interface appartient aussi. continuer à obtenir des erreurs
switch (IOjbect is)
{
case Tile:
trace ("Load Tile");
break;
case House:
trace ("A House Load");
break;
default:
trace ("Neither a or b was selected")
}
quelqu'un a des idées
La solution
Vous ne pouvez pas utiliser un is
que vous essayez todo dans switch/case
:
Utilisez un lieu Si:
var myObject:IObject=...
if (myObject is Tile){
var myTile:Tile=Tile(myObject);
// you can cast myObject to Tile since the IS return true
// otherwise it will raise an exception
} else if (myObject is House){
var myHouse:House=House(myObject);
}
Pour la as
il retournera null
si ce n'est pas du type que vous voulez:
var myObject:IObject=...
var myHouse:House=myObject as House;
if (myHouse===null){
var myTile:Tile=myObject as Tile;
if (myTile===null) ...
}
Autres conseils
Malheureusement, la déclaration de cas de commutateur ne fonctionne pas comme ça. Vous ne devez mettre des objets simples dans l'instruction switch (pas de code).
Pour ce que vous essayez d'accomplir, j'irais avec if / else.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow