我正在制作一个函数,它将从 StreamReader 中获取行数,不包括注释(以“//”开头的行)和新行。
这是我的代码:
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;
}
谢谢您的帮助!