0

is オペランドまたは instanceof を 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")
            }

誰もがアイデアを持っています

4

2 に答える 2

2

isあなたがやろうとしているようにあなたは使用することはできませんswitch/case

代わりにIfを使用してください:

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) ...
 }
于 2009-12-30T21:05:44.773 に答える
1

残念ながら、switchcaseステートメントはそのようには機能しません。switchステートメントには単純なオブジェクトのみを配置する必要があります(コードではありません)。

あなたが達成しようとしていることについては、if/elseステートメントを使用します。

于 2009-12-30T21:07:57.250 に答える