将数字增加1

时间:2010-11-05 20:02:11

标签: c#

我想看到label6显示用户选择号码的正确次数。而label7显示用户选择错误的次数。它不会增加一个。

错误1运算符'++'无法应用于'string'类型的操作数 错误2运算符'++'不能应用于'string'类型的操作数

private void button1_Click(object sender, EventArgs e)
    {
        string correct="0";
        string incorrect="0";
        RandomNumber(0,99);
        button2.Enabled = true ;
        button1.Enabled = false;
        label3.Visible = true;
        if (textBox1.Text == label1.Text)
            label3.Text=("Winner");
               label6.Text = correct +1;
               if (textBox1.Text != label1.Text)
                   label7.Text = incorrect= +1;
            label3.Text=(string.Format("Sorry - You Lose, The number is {0}",   label1.Text));

    }


编辑(来自OP对自己问题的回答):

我已经尝试过你的建议方式,但每次我猜错了数字都不会增加一个。

private void button1_Click(object sender, EventArgs e)


    {
        int correct=0;
        int incorrect=0;
        RandomNumber(0,99);
        button2.Enabled = true ;
        button1.Enabled = false;
        label3.Visible = true;
        if (textBox1.Text == label1.Text)
        {
            label3.Text = ("Winner");
            label6.Text = (++correct).ToString(); 
        }

        else if (textBox1.Text != label1.Text)
        {
            label7.Text = (incorrect+1).ToString(); 

            label3.Text = (string.Format("Sorry - You Lose, The number is {0}", label1.Text));
        }


    }

5 个答案:

答案 0 :(得分:10)

看起来你似乎没有坚持correctincorrect

创建属性:

public int Correct { get; set; }
public int Incorrect { get; set;}

然后:

private void button1_Click(object sender, EventArgs e)
{
   RandomNumber(0,99);
   button2.Enabled = true ;
   button1.Enabled = false;
   label3.Visible = true;

   if (textBox1.Text == label1.Text)
   {
     label3.Text=("Winner");
     label6.Text = (++this.Correct).ToString();
   }
   else
   {  
      label3.Text=(string.Format("Sorry - You Lose, The number is {0}", label1.Text));
      label7.Text = (++this.Incorrect).ToString();
   } 
}

答案 1 :(得分:8)

您将正确和错误的变量存储为string

使用int代替:

int correct = 0;
int incorrect = 0;

并将您的代码更改为:

correct++;
label6.Text = correct.ToString();

incorrect++;
label7.Text = incorrect.ToString();

答案 2 :(得分:4)

添加到字符串correctincorrect只会附加所添加内容的字符串表示形式。您必须将其转换为整数类型,然后递增,然后转换回字符串。但是,将这些变量保持为整数实例变量会更容易。这种方式递增是微不足道的,实际上你保持正确的计数,而不是每次点击按钮都重置。 (代码实际上存在许多问题)

// instance variables
private int correct = 0;
private int incorrect = 0;

private void button1_Click(object sender, EventArgs e)
{
    RandomNumber(0,99);
    button2.Enabled = true ;
    button1.Enabled = false;
    label3.Visible = true;
    if (textBox1.Text == label1.Text)
    {
        label3.Text=("Winner");
        label6.Text = (++correct).ToString(); // convert int to string
    }
    // indentation does not indicate the block
    else //if (textBox1.Text != label1.Text)
    {
        label3.Text=(string.Format("Sorry - You Lose, The number is {0}",   label1.Text));
        label7.Text = (++incorrect).ToString();
    }
}

答案 3 :(得分:1)

或者您可以使用:

正确=正确+ 1; (我认为这是你想要实现的目标) 不正确=错误+ 1;

OR

正确+ = 1; incorect + = 1;

答案 4 :(得分:0)

label6.Text = correct +1;

仅将label6的值设置为正确+ 1;它不会改变正确的值。如果您使用:

int correct;
label6.Text = (++correct).ToString();

你应该看到你想要的东西。