我正在製作一個函數,它將從StreamReader中獲取不包含註釋(以'//'開頭的行)和新行的行數。StreamReader NullReferenceException
這是我的代碼:
private int GetPatchCount(StreamReader reader)
{
int count = 0;
while (reader.Peek() >= 0)
{
string line = reader.ReadLine();
if (!String.IsNullOrEmpty(line))
{
if ((line.Length > 1) && (!line.StartsWith("//")))
{
count++;
}
}
}
return count;
}
我的StreamReader的數據是:
// Test comment
但我發現了一個錯誤,「不設置到對象的實例對象引用」。有沒有辦法解決這個錯誤?
編輯 原來這發生在我的StreamReader爲空時。所以用musefan和史密斯先生的建議代碼,我想出了這個:
private int GetPatchCount(StreamReader reader, int CurrentVersion)
{
int count = 0;
if (reader != null)
{
string line;
while ((line = reader.ReadLine()) != null)
if (!String.IsNullOrEmpty(line) && !line.StartsWith("//"))
count++;
}
return count;
}
感謝您的幫助!
什麼是堆棧跟蹤? – SLaks 2013-04-22 15:16:14
你有調試過嗎?你可以很容易地斷點並確定什麼*確切*是'null'。 – Arran 2013-04-22 15:16:33
嗯,我想你的StreamReader是空... – MUG4N 2013-04-22 15:17:03