-5

我有这个代码,但它不工作:

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");
}

编辑:解决方案:问题是使用单个 = 而不是 ==

4

3 回答 3

6

问题很可能是这条线

if ((N11 = N6 = N7))

=在 C# 中是赋值;你最有可能在寻找平等,这是==

将上述内容更改为此应该可以为您解决问题。

if (N11 == N6 && N11 == N7)
于 2012-12-20T19:28:07.780 回答
5

要处理您的比较,您需要:

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;
}
于 2012-12-20T19:29:04.750 回答
1

尝试这个:-

 if ((N11 == N6) && (N11 == N7))

代替

 if ((N11 = N6 = N7))
于 2012-12-20T19:29:35.847 回答