簡體   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