我有此代码,但它无效:
double N1 = int.Parse(TB_S1.Text);
double N2 = int.Parse(TB_S2.Text);
double N3 = int.Parse(TB_S3.Text);
double N4 = int.Parse(TB_P1Y.Text);
double N5 = int.Parse(TB_P2X.Text);
double N11 = N1 + N2;
double N6 = N2 + N3;
double N7 = N3 + N4;
double R;
if ((N11 = N6 = N7))
{
messageBox.Show("Corect");
}
答案 0 :(得分:5)
问题很可能是这一行
if ((N11 = N6 = N7))
C#中的 =
是赋值;你最有可能寻找平等,即==
将上述更改为此应该为您解决。
if (N11 == N6 && N11 == N7)
答案 1 :(得分:4)
要处理您的比较,您需要:
if ((N11 == N6) && (N11 == N7))
或者,简化:
if (N11 == N6 && N11 == N7)
请注意==
(比较)而不是=
(分配)。此外,您需要进行两次单独的比较,以检查三个值是否相等。
此外,您现在正在使用int.Parse
,但已分配到double
。您应该使用double.Parse
代替:
double N1 = double.Parse(TB_S1.Text);
您可能还想考虑使用double.TryParse
,因为这样可以更好地处理用户输入中的错误:
double N1;
if(!double.TryParse(TB_S1.Text, out N1))
{
MessageBox.Show("Please enter a valid value in TB_S1");
return;
}
答案 2 :(得分:1)
试试这个: -
if ((N11 == N6) && (N11 == N7))
而不是
if ((N11 = N6 = N7))