在声明之前不能使用局部变量

时间:2013-07-30 00:13:44

标签: c# function parameters scope

我正在尝试创建一个函数,但我收到了错误消息。

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 ++中这种类型的声明会起作用;但是,我不确定为什么它不在这里工作。

4 个答案:

答案 0 :(得分:40)

在视觉工作室。有时再次声明一个变量(第二次)。它会给出这个错误。例如,这有时会引发您提到的异常:

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

显然这无论如何都是错误的。因此,删除第二个声明(第4行)将解决问题。

注意:您通常期望的例外是A local variable named 'startingRadius' is already defined in this scope。但由于某种原因,有时会显示您提到的例外情况。

答案 1 :(得分: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;
         }

答案 2 :(得分:2)

听起来你有一个错位的}或拼写错误的变量名。如果没有看到完整的代码,我真的无法分辨。

错误消息基本上告诉您,您正在尝试使用尚未声明的局部变量。这表明if (startingRadius == 1)代码实际上与您声明的方法不同。

答案 3 :(得分:0)

对我来说,它完全删除了局部变量并创建了一个具有不同名称的新文件...

#>   X      FECHA   LOCAL RESULT       VISITANTE DATE
#> 1 3 Sat 12 Sep   Eibar  0 - 0      Celta Vido <NA>
#> 2 4 Sat 12 Sep Granada  2 - 0 Athletic Bilbao <NA>

UPDTE:

删除所有现有的“蝴蝶”,并使用非常相似的新名称创建新的

Originally:

string butterfly;

butterfly = "butterfly with error"; <-- gives error

*第一次尝试:

  1. 清理并重建项目-没有帮助
  2. 重新启动整个程序(IDE)-没有帮助*