我想看到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));
}
}
答案 0 :(得分:10)
看起来你似乎没有坚持correct
和incorrect
创建属性:
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)
添加到字符串correct
和incorrect
只会附加所添加内容的字符串表示形式。您必须将其转换为整数类型,然后递增,然后转换回字符串。但是,将这些变量保持为整数实例变量会更容易。这种方式递增是微不足道的,实际上你保持正确的计数,而不是每次点击按钮都重置。 (代码实际上存在许多问题)
// 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();
你应该看到你想要的东西。