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

編集:解決策:問題は==の代わりにsingle=を使用していました

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)

(割り当て)==ではなく(比較)に注意してください。=また、3つの値が等しいかどうかを確認するには、2つの別々の比較を行う必要があります。

さらに、現在はを使用しています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 に答える