1

我发现这个知识库中没有解决这个问题,并决定添加问题和答案以帮助其他人。

我正在创建一个TextReader使用 逐行读取文本文件的方法ReadLine,这需要对该流的结尾进行终止检查。

TextReader TR = new TextReader("MyFile.txt");
while (!TR.EndOfStream) // fails to compile here
{
    // do something
}

TextReader 类不存在 EndOfStream,并且此代码不会编译。

4

1 回答 1

-1

该解决方案相对简单,但可能会被 C# 和 .NET 库的新手(以及编写代码太快的专家!)忽略。

该类TextReader是 的子类StreamReader,正是后一个类为其所有子类提供了通用功能。

因此解决方案是将 reader 声明为 a StreamReader,然后将其实例化为 a TextReader

StreamReader TR = new TextReader("MyFile.txt");
while (!TR.EndOfStream) // it finds this property now
{
// do something
}
于 2017-12-27T05:49:52.803 回答