Zayn
Zayn

Reputation: 31

Error: returns void, a return keyword must not be followed by an object expression

    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
     }

Explanation: I have created an arraylist that allows me generate randomly between 1-70 but noticed my numbers where somewhat repeating. In a bid to prevent this, i noticed i was getting an error message below:

Error 1 Since 'wwTestAppV1.GenKnow.QuestionAnswer_Load(object, System.EventArgs)' returns void, a return keyword must not be followed by an object expression

i have tried everything i can to resolve this.the program runs well when i remove this statement but shows duplicate values. Could you please help?

Upvotes: 2

Views: 48868

Answers (1)

Kache
Kache

Reputation: 16667

Your method signature is:

private void QuestionAnswer_Load(object sender, EventArgs e)

The return type void means you can't/aren't planning to return anything. However, at the bottom, you have:

return lstNumbers;//returns once list is built

You're returning something! The compiler is complaining that you told it conflicting instructions. Either change the return type to ArrayList or do not return anything.

That being said, there are several improvements that could be made to the code to make it more readable, which will help you decipher problems, too. Consider submitting your code to https://codereview.stackexchange.com/.

Upvotes: 10

Related Questions