2009-12-30 5 views
0

J'essaie de comprendre comment appliquer l'opérande is ou l'instanceof dans une instruction case pour déterminer quel type de données appartient un objet interface. continuez à recevoir des erreursapplication de l'opérande is ou instanceof dans une instruction case

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

Répondre

2

Vous ne pouvez pas utiliser un is que vous essayez todo dans switch/case:

Utilisez un Si à la place:

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 le as il renverra null s'il 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) ... 
} 
1

Malheureusement, l'instruction de changement d'état ne fonctionne pas comme cela. Vous devez seulement mettre des objets simples dans l'instruction switch (pas de code).

Pour ce que vous essayez d'accomplir, j'irais avec des instructions if/else.

Questions connexes