1
    private void QuestionAnswer_Load(object sender, EventArgs e)
    {

        txtQuestion.Enabled = false;
        txtQuestion.BackColor = Color.White;
        grpMultipleChoice.Enabled = false;
        grpSingleChoice.Enabled = false;

        btnCheckAnswer.Enabled = false;
        btnNext.Enabled = false;
        btnQuit.Enabled = false;

        //force student to enter registration details
        if (txtStudentName.Text == "" && txtStudentNumber.Text == "" && txtModuleNumber.Text == "")
        {
            btnStart.Enabled = false;
            MessageBox.Show("You must enter your registration details at the upper right corner");
        }

        //declare a list
        lstNumbers = new ArrayList();

        //create a random number generator
        Random rndNumber = new Random();

        //generate 70 random numbers
        //int number = (int)(rndNumber.NextDouble() * 69) + 1;

        //lstNumbers.Add(number);
        ///use this counter to loop whenever a number is generated
        int count = 0;
        int maximumNumber = 69;

        ///disable answer button 
        btnCheckAnswer.Enabled = false;
        do
        {

            int number = (int)(rndNumber.NextDouble() * maximumNumber) + 1;
            lstNumbers.Add(number);
            if (!lstNumbers.Contains(number))
            {
                lstNumbers.Add(number);
            }
            count++;

        } while (count <= 15 * 70);//
        btnCheckAnswer_Click(sender, e);
        return lstNumbers;//returns once list is built
     }

説明: 1 から 70 の間でランダムに生成できるようにする arraylist を作成しましたが、数値が幾分繰り返されていることに気付きました。これを防ぐために、以下のエラー メッセージが表示されることに気付きました。

エラー 1 「wwTestAppV1.GenKnow.QuestionAnswer_Load(object, System.EventArgs)」は void を返すため、return キーワードの後に​​オブジェクト式を続けてはなりません

これを解決するためにできることはすべて試しました。このステートメントを削除すると、プログラムは正常に動作しますが、重複した値が表示されます。助けていただけますか?

4

1 に答える 1

8

メソッドの署名は次のとおりです。

private void QuestionAnswer_Load(object sender, EventArgs e)

戻り値の型voidは、何も返すことができない、または何も返す予定がないことを意味します。ただし、下部には次のものがあります。

return lstNumbers;//returns once list is built

あなたは何かを返しています!コンパイラは、競合する命令を伝えたと不平を言っています。戻り値の型をに変更するか、ArrayList何も返さないようにしてください。

そうは言っても、コードを読みやすくするためにコードにいくつかの改善を加えることができ、問題を解読するのにも役立ちます。コードをhttps://codereview.stackexchange.com/に送信することを検討してください。

于 2012-10-11T15:54:19.870 に答える