繁体   English   中英

运行时计算

[英]Run-Time Calculation

我正在Windows窗体应用程序上工作。 我有三个按钮。 我写了一种方法,可以为每个按钮计算一个新位置。 但我有一些错误(在代码后解释)。 方法是:

    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'。 这个问题有什么解决方案?

只需使用

int x2 = 0;

一切都需要初始化才能使用。 这是语言的要求。

关系不太紧密,但无论如何都可以实现: SO

使用前未设置x2

Random random = new Random();
public int SetPointLocation()
{
    int x2;   // <- here' the problem
    int x1 = x2 - 20;
...

x2赋值:

x2 = 123;

C#中不允许使用未初始化的变量。

编译器应告诉您错误的位置。

听起来您真的只想将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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM