2012-11-01 50 views
-1

可能重複:
C# StreamReader input files from labels?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

您是否添加了'使用System.IO'作爲要導入的命名空間? – Steve

+0

我同意@Steve可能是進口 – Jorge

+1

你真的需要投資一個像Resharper這樣的工具。它會爲你節省很多次旅行。 –

回答

4

也許你還沒有添加命名空間進口

using System.IO; 

,你可以寫全限定引用文件的替代和StreamReader的對象

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

但是,當然這不是很方便。

此外,請注意,如果出於任何原因,您的代碼在讀取流時拋出異常,則該方法退出而不關閉流。應該不惜一切代價避免這種情況。
The using statement可能會有所幫助。

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