2017-12-27 5 views
1

このナレッジベースではこの問題は解決されておらず、他の人に役立つ質問と回答を追加することになりました。TextReaderのEndOfStreamチェックなし

ReadLineを使用して行単位でテキストファイルを読み込むには、TextReaderを作成しています。このストリームの終了を確認する必要があります。

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

TextReaderクラスにはEndOfStreamが存在せず、このコードはコンパイルされません。

答えて

1

解決方法は比較的簡単ですが、C#および.NETライブラリの新機能や、コードをあまりにも速く書く専門家が見逃す可能性があります。

TextReaderクラスは、StreamReaderからサブクラス化されており、すべての子クラスに共通の機能を提供するのは後者のクラスです。

したがって、解決策は、リーダーをStreamReaderと宣言してから、TextReaderとしてインスタンス化することです。

StreamReader TR = new TextReader("MyFile.txt"); 
while (!TR.EndOfStream) // it finds this property now 
{ 
// do something 
} 
関連する問題