0

私はWindowsフォームアプリケーションに取り組んでいます。私は3つのボタンを持っています。各ボタンの新しい位置を計算するメソッドを作成しました。しかし、いくつかのエラーがありました(コードの後に​​説明されています)。メソッドは次のとおりです。

    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」を設定できません。この問題の解決策は何ですか?!

4

3 に答える 3

5

単に使用する

int x2 = 0;

使用する前に、すべてを初期化する必要があります。これは言語の要件です。

あまり密接に関連していませんが、とにかくヒットします: SO .

于 2013-05-21T17:22:50.523 に答える
3

x2使用前に設定されていません。

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

に値を与えるx2:

x2 = 123;

C# では、初期化されていない変数を使用することはできません。

コンパイラは、エラーの場所を教えてくれるはずです。

于 2013-05-21T17:23:24.517 に答える