2014-01-23 84 views
2

我在Microsoft Visual Studio 2010中使用C#編程。 在我的代碼中的某處,我在檢查該行的值是否爲空之後,在while循環中使用了break關鍵字。爲什麼我的休息不成功?

我確定行值爲空,但break命令仍然不起作用。 我該如何解決這個問題?

while (!myfile.EndOfStream) 
{ 
    string line = myfile.ReadLine(); 

    if (line == null) { break; } 
    else 
    { ...} 
} 
+2

如果它不是流的結尾,那麼該行是否將爲空?它可能是一個空字符串,但我不認爲它可以爲空 – owen79

+1

string.IsNullOrEmpty(行)是我認爲你正在尋找。 – Bit

+1

爲了將來的參考,並不是說你的中斷不起作用,而是代碼永遠不會達到那個點(因爲行不是空的)。堅持「休息」的斷點本來就很明顯。 –

回答

8

它不爲空,你得到一個空字符串返回或字符串與空白(換行符等)。 它,如果你修改您的支票更好:

if (string.IsNullOrWhiteSpace(line)) { break; } //checks null and white space 
               // or empty string 

String.IsNullOrWhiteSpace設有框架4.0或更高版本。

+0

它是沒問題,只要有不是在你的文件中的任何預期的空白行! –

1

無效檢查不需要。它已被EndOfStream檢查強制執行。它可以被刪除。