2013-07-30 26 views
10

関数を作成しようとしていますが、エラーメッセージが表示されます。それが宣言される前に宣言される前にローカル変数を使用できません

public int[] genericSearch(int searchWidth, int startingRadius, int width, int height, Bitmap bitmap) 
{ 
    //Generic function for finding the best path from a certain range 
    if (startingRadius == -1) 
     startingRadius = bitmap.Height()/2; 

は、ローカル変数 'startingRadius' を使用することはできません。

同じ問題がビットマップ変数にも発生します。通常、C++ではこのタイプの宣言が機能します。しかし、なぜ私はここで働いていないのか分かりません。あなたは見当違い}かを持っているようですね

+2

Bitmap.Heightはプロパティなので、 'bitmap.Height'だけ必要です。 – ChaseMedallion

答えて

4

(およびプロパティへの変更高さ)...

public int[] genericSearch(int searchWidth, int startingRadius, int width, int height,Bitmap bitmap) 
     { 
     //Generic function for finding the best path from a certain range 
      if (startingRadius == -1) 
       startingRadius = bitmap.Height/2; 
     } 
1

をあなたの方法に閉じ括弧が欠落しているが、それ以外、このコードは私のマシン上でコンパイルすることができますスペルミスの可能性があります。完全なコードを見ることなく、私は本当に分からない。

エラーメッセージは基本的に、使用しようとしているローカル変数が宣言されていないことを伝えています。これは、if (startingRadius == 1)コードが実際にあなたが宣言した方法とは異なる方法の中にあることを示唆しています。

26

ビジュアルスタジオで。変数をもう一度宣言すると(2回目)。このエラーが発生します。たとえば、これにより、あなたが言及した例外がスローされることがあります:

1. int startingRadius = 0; 
2. startingRadius = 5; <-- Exception thrown here. 
3. 
4. int startingRadius = 0; 

これは間違いです。したがって、2行目の宣言を削除すると(4行目)、問題は解決されます。

注:通常は例外は、A local variable named 'startingRadius' is already defined in this scopeとなります。しかし何らかの理由で、あなたが言及した例外が時々表示されます。

+0

これは私の問題でした。ありがとう:) –

+0

これは答えとしてマークする必要があります。 – ShieldOfSalvation

関連する問題