可能是错误的空洞陈述

时间:2013-01-26 11:39:48

标签: c#

我是编程的新手,我遇到了一个名为“可能错误的空语句”的问题,现在我已经对这个主题进行了大量研究,我给出的解决方案是删除if之后的半冒号声明,但这只会产生更多警告和更多我目前不知道解决方案的错误,我非常感谢帮助,我使用的语言是C#。

if (checkBox5.Checked = true) ;
Double value5 = Convert.ToDouble(checkBox4.Checked);
value5 = +1;
Double result5 = value5;
label2.Text = Convert.ToString(result5);

5 个答案:

答案 0 :(得分:8)

这就是你想要的:

if (checkBox5.Checked == true)
{
    double value5 = Convert.ToDouble(checkBox4.Checked) + 1;
    label2.Text = value5.ToString();
}

=是分配,而==检查是否相等,另一方面if后的分号将终止整个if语句。

请注意,当您检查true时,您可以使用此功能:

if (checkBox5.Checked) {  }

答案 1 :(得分:4)

你应该使用;

if (checkBox5.Checked == true)

if (checkBox5.Checked = true)

=赋值运算符==等于运算符

退房;

当然,当你检查你的真实价值时,你可以使用if条件,如;

if (checkBox5.Checked)
{
  // Do something if checkBox5 is checked.
}

如果你在if条件之后使用分号;

if (checkBox5.Checked = true) ;

相当于

if (checkBox5.Checked = true) { }

所以在你的情况下,我认为你也不应该使用分号。因为如果你使用它,你的代码将会是这样的;

if (checkBox5.Checked = true)
{

}

Double value5 = Convert.ToDouble(checkBox4.Checked);
value5 = +1;
Double result5 = value5;
label2.Text = Convert.ToString(result5);

我认为你不想这样做。请记住,即使没有正文执行,也不意味着循环终止。

答案 2 :(得分:0)

除了@des和@Soner的答案,你为什么不这样做:

if (checkBox5.Checked)

    label2.Text = Convert.ToDouble(checkBox5.Checked).ToString();

我假设您不打算value5增加1,因为它应该是value5 += 1;

答案 3 :(得分:0)

if (checkBox5.Checked == true) ; // or you can use if (checkBox5.Checked)
//                     ^------------------- `=` assignment operator must be `==` equals
{  // missed 
    Double value5 = Convert.ToDouble(checkBox4.Checked);
    value5 = +1;
//          ^_______________ I assume you need `=+` addition assignment operator instead
//                                     assigning `+1` to `value5 `
    Double result5 = value5;
    label2.Text = Convert.ToString(result5);
} /// missed 

答案 4 :(得分:0)

问题是你的if和单个'='结尾处的分号应该是:

if (checkBox5.Checked = true) ;

应该是:

if (checkBox5.Checked == true) // double '==' for equality comparison