没有EndOfStream检查TextReader

问题描述 投票:1回答:1

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

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

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

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

c# streamreader textreader
1个回答
1
投票

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

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

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

StreamReader TR = new TextReader("MyFile.txt");
while (!TR.EndOfStream) // it finds this property now
{
// do something
}
© www.soinside.com 2019 - 2024. All rights reserved.