-1

わかった。私のクラスと私が今週行っている iLab では、GUI を使用しています。設計しなければならない 2 番目のプログラムは、推測ゲームです。このプログラムは、0 から 100 までの数値をランダムに生成し、その数値を後で使用できるように渡すことになっています。これが私がすでに持っているコードです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Guessing_game
{
    public partial class Form1 : Form

    {
        int target();
        public Form1()
        {
            InitializeComponent();
            Random r = new Random();
            int target = r.Next(0, 100);
        }

        private void btnEvaluate_Click(object sender, EventArgs e)
        {
            if (txtGuess.Text == target)
            {

            }
        }
    }
}

}

注意してください、「btnEvaluate_Click」エリアは完了していません。これは、プログラムがアクセスできるはずの変数「Target」が後で読み取れないためです。

いくつかのコメントを読んだ後、コードを微調整することができたので、もう 1 つのエラーが発生しました。これを再現してみてください。正確な書き方をお伝えできます。GUI には、ラベル、テキスト ボックス、およびボタンが必要です。ボタンは、ターゲットの値に対するユーザーの推測をチェックできるように、「ターゲット」に指定された値を取得する必要があります。役立つ場合は、Visual Studio 2010 を使用しています。

4

4 に答える 4

4

targetこれを試してください。 publicを宣言する必要があります

    Random r = new Random();
    int target = r.Next(0, 100);
    public Form1()
    {
        InitializeComponent();
    }

    private void btnEvaluate_Click(object sender, EventArgs e)
    {
        if (txtGuess.Text == target)
        {

        }
    }
于 2013-10-07T21:08:01.843 に答える
1

int targetの外に置く必要がありpublic Form()ます。イベント内で、 に変更targettarget.ToString()ます。

于 2013-10-07T21:07:46.123 に答える
1

括弧{}はスコープを定義します。targetコンストラクター ( ) のスコープ内で変数を宣言しましたForm1。したがって、クラス全体でアクセスできるようにするために、クラス レベルの変数にすることができます。例えば

int target;
public Form1()
{
   InitializeComponent();
   Random r = new Random();
   target = r.Next(0, 100);
}

(ただし、Randomオブジェクトを再度使用する場合は、それもクラス レベルの変数にする必要があります)。また、文字列と比較しようとしintています。そのはず

if (txtGuess.Text == target.ToString())
{

}
于 2013-10-07T21:10:39.480 に答える
0

これtargetは、コンストラクターに対してローカルであるため、他の場所には表示されないためです。代わりにtargetフィールドを作成しForm1ます。これは宿題なので、自分で試してみましょう。まだ困惑している場合はお知らせください。

于 2013-10-07T21:10:05.120 に答える