2009-12-30 2 views
0

Я пытаюсь выяснить, как применить операнд или экземпляр case в case-case, чтобы определить, какой тип данных принадлежит интерфейсу. постоянно получаю ошибкиприменение операнда или экземпляра в случае 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") 
      } 

Кто-нибудь есть какие-либо идеи

ответ

2

Вы не можете использовать is как вы пытаетесь TODO в switch/case:

использовать, если вместо:

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); 
} 

Для as он вернет null, если это не тот тип, который вы хотите:

var myObject:IObject=... 
var myHouse:House=myObject as House; 
if (myHouse===null){ 
    var myTile:Tile=myObject as Tile; 
    if (myTile===null) ... 
} 
1

К сожалению, инструкция case switch не работает. Вы должны помещать простые объекты в оператор switch (не код).

Для чего вы пытаетесь выполнить, я бы пошел с операторами if/else.

Смежные вопросы