-1

重複の可能性:
ラベルからの C# StreamReader 入力ファイル?

さて、私はまだローラーダイスプログラムに取り組んでいます.ゲームが最初からやり直すたびに、以前のハイスコアを表示するプログラムが必要です. ただし、コードを入力すると。エラーが発生します。「ファイル」という名前は存在せず、名前空間名 StreamReader が見つかりませんでしたか? 助けてください

private void button2_Click(object sender, EventArgs e)
{   
    try
    {
        int scores;
        int highscore = 0;
        StreamReader inputFile;

        inputFile = File.OpenText("HighScore.txt");

        while (!inputFile.EndOfStream)
        {
            scores = int.Parse(inputFile.ReadLine());

            highscore += scores;
        }

        inputFile.Close();

        highscoreLabel.Text = highscore.ToString("c");

    }   
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}
4

1 に答える 1

4

おそらく、名前空間のインポートを追加していません

using System.IO;

別の方法として、FileオブジェクトとStreamReaderオブジェクトへの完全修飾参照を書き込むことができます

 System.IO.StreamReader inputFile;
 inputFile = System.IO.File.OpenText("HighScore.txt");

しかし、もちろん、これはあまり便利ではありません。

また、何らかの理由でストリームの読み取り中にコードが例外をスローした場合、メソッドはストリームを閉じずに終了することに注意してください。これは絶対に避けなければなりません。
usingステートメントが役立つ場合があります。

int scores;
int highscore = 0;
using(StreamReader inputFile = File.OpenText("HighScore.txt"))
{
    try
    {
         while (!inputFile.EndOfStream)
         {
             scores = int.Parse(inputFile.ReadLine());
             highscore += scores;
         }
         highscoreLabel.Text = highscore.ToString("c");
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
}   
于 2012-11-01T00:37:17.643 に答える