-5

私は自分のプログラムを実行しようとし、自分のコードを友人のコードと比較しましたが、これらの行を変更しようとしてもエラーが表示され続けます (エラーの原因はどこにあると思いますか):

try
{
    FileStream b = new FileStream(@"C:\User\User_2\Desktop\board.txt", FileMode.Open);
    StreamReader stream = new StreamReader(b);

    int x = 0;
    while (!stream.EndOfStream)
    {
        if (x == 0)
            g1 = stream.ReadLine().Split(' ');
        else if (x == 1)
            g2 = stream.ReadLine().Split(' ');
        else if (x == 2)
            g3 = stream.ReadLine().Split(' ');

        x++;
    }
    stream.Close();
    b.Close();
}
catch (Exception e) { }

このプログラムは、次の 3 行を含むテキスト ファイルをチェックするために使用されます。

O. バツ
XO。
バツ 。〇

...勝者がいるかどうかを確認します。

これは、Visual Studio がエラーを強調表示する部分です。

int n = 0;
int m = n + 1;
int o = m + 1;

Boolean result = false;
int winner = 0;
string dw = "";

while (n <= 2)
{
    // In this if-statement is the error:
    if (g1[n].Equals(g2[n]) && g2[n].Equals(g3[n]) && !g1[n].Equals("."))
    {
        result = true;
        winner++;
        dw = g1[n];
    }
    if (g1[n].Equals(g1[m]) && g1[m].Equals(g1[o]) && !g1[n].Equals("."))
    {
        result = true;
        winner++;
        dw = g1[n];
    }
    else if (g2[n].Equals(g2[m]) && g2[m].Equals(g2[o]) && !g2[n].Equals("."))
    {
        result = true;
        winner++;
        dw = g2[n];
    }
    else if (g3[n].Equals(g3[m]) && g3[m].Equals(g3[o]) && !g3[n].Equals("."))
    {
        result = true;
        winner++;
        dw = g3[n];
    }
    else if (g1[n].Equals(g2[m]) && g2[m].Equals(g3[o]) && !g1[n].Equals("."))
    {
        result = true;
        winner++;
        dw = g1[n];
    }
    else if (g3[n].Equals(g2[m]) && g2[m].Equals(g1[o]) && !g3[n].Equals("."))
    {
        result = true;
        winner++;
        dw = g3[n];
    }
    n++;
}

私は本当に何をすべきかわからない、私はそれを機能させることができません。

編集: if ステートメントの前に配列の値を出力しようとしましたが、何も出力されません。申し訳ありませんが、私はここで本当に新しいです。

4

3 に答える 3

0

使用するときEqualsは、呼び出しているオブジェクトが null でないことを確認する必要があります。

object oneValue = 1;
object nullValue = null;

var result = nullValue.Equals(oneValue); // Throws NullReferenceException because nullValue is null

代わりに等価演算子を使用できます。

string oneValue = "1";
string nullValue = null;

var result = nullValue == oneValue; // False
于 2013-05-02T12:32:36.263 に答える