2

try{} catch{} メソッドの後で変数 (具体的には ArrayList) にアクセスしようとしています。

try 
{
//Here I would import data from an ArrayList if it was already created.
}
catch
{  
//Create new array list if it couldn't find one.
ArrayList items = new ArrayList();
}

いずれにせよ、ArrayList アイテムが作成され、アクセスできるようにしたいと考えています。次のように、前に ArrayList を初期化しようとしました。

ArrayList items;
try 
{
//Here I would import data from an ArrayList if it was already created.
}
catch
{  
//Create new array list if it couldn't find one.
ArrayList items = new ArrayList();
}

しかし、try{} catch{} ブロックでは、「既に作成されている」と表示されるため、何もできません。

以前に実行されたときのアクションを記憶するプログラムを作成できるようにしたいのですが、正しい概念を理解することができないようです。

4

3 に答える 3

6

スコープを外側に移動する必要があります。

ArrayList items;    // do not initialize
try 
{
   //Here I would import data from an ArrayList if it was already created.
   items = ...;
}
catch
{  
  //Create new array list if it couldn't find one.
  items = new ArrayList();  // note no re-declaration, just an assignment
}

しかし、いくつかのヒントを教えてください。

  • に投資しすぎないでください。代わりArrayList()に見てください。List<T>
  • 使用方法には十分注意してくださいcatch {}
    デフォルトの回答を提供することは、通常、適切なポリシーではありません。
于 2013-10-11T20:47:43.557 に答える
0

items 変数を再作成する必要はありません。インスタンス化するだけです。

ArrayList items;
try 
{
    //Here I would import data from an ArrayList if it was already created.
}
catch
{  
    //Create new array list if it couldn't find one.
    items = new ArrayList();
}
于 2013-10-11T20:49:48.240 に答える