我正在使用Windows Forms Application。我有三个按钮。我写了一个方法来计算每个按钮的新位置。但我有一些错误(在代码后解释)。方法是:
Random random = new Random();
public int SetPointLocation()
{
int x1 = x2 - 20;
int x2;
int x3 = x2 + 20;
int y1 = y2 - 1;
int y2 = random.Next(0, 2);
int y3 = y2 + 1;
return x2 = (((x3 - x1) * (y2 - y1)) / y3 - y1) + x1;
}
我得到的错误:
在声明之前不能使用局部变量'x2'。
在声明之前不能使用局部变量'y2'。
所以我重新安排了方法的块:
Random random = new Random();
public int SetPointLocation()
{
int x2;
int x1 = x2 - 20;
int x3 = x2 + 20;
int y2 = Convert.ToInt32((picBox.Name).Remove(0, 10));
int y1 = y2 - 1;
int y3 = y2 + 1;
return x2 = (((x3 - x1) * (y2 - y1)) / y3 - y1) + x1;
}
现在我得到的错误:
“使用未分配的局部变量'x2'”。
我使用的公式是从频率表“统计”中找到中位数的方法。 但'x2'是未知的,我想在运行时计算它,但因为'x2'没有值,我不能设置'x1'和'x3'。这个问题的解决方案是什么?!
答案 0 :(得分:5)
答案 1 :(得分:3)
x2
在使用之前未设置。
Random random = new Random();
public int SetPointLocation()
{
int x2; // <- here' the problem
int x1 = x2 - 20;
...
为x2
提供一个值:
x2 = 123;
在C#中不允许使用未初始化的变量。
编译器应该告诉你错误的位置。
答案 2 :(得分:3)
听起来你真的只想传递x2作为参数。然后,当您知道x2是什么时,您可以调用该函数。
Random random = new Random();
public int SetPointLocation(int x2)
{
int x1 = x2 - 20;
int x3 = x2 + 20;
int y2 = Convert.ToInt32((picBox.Name).Remove(0, 10));
int y1 = y2 - 1;
int y3 = y2 + 1;
// Just return what x2 needs to be
return (((x3 - x1) * (y2 - y1)) / y3 - y1) + x1;
}