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

Était-ce utile?

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
scroll top