如何检查StreamReader是否仍处于打开状态?

Cho*_*tch 5 c#

我尝试用一些额外的方法和属性"包装"一个StreamReaderFichier.

我想要两件事:

  • StreamReader在自动打开Fichier类;
  • StreamReader当我们使用overrided方法打开ReadLine,而不是之前(我们需要有阅读它之前修改文件StreamReader).

我的一段代码看起来像这样:

public string ReadLine()
{
    if (Reader == null || ???)
    {
        Reader = new StreamReader(Path);
    }
    return Reader.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

???,我想检查StreamReader是否已关闭.的确,如果我们这样做:

StreamReader sr = new StreamReader(path);
sr.Close();
Run Code Online (Sandbox Code Playgroud)

sr 不是null,但如何检查它是否已关闭,以及如何重新打开它?

如果你想知道我为什么需要打开和关闭StreamReader,那是因为Fichier对象需要随时存在,但是它所代表的文件需要在外部程序中多次修改.

Pat*_*man 9

最简单的事情是Dispose(你真的应该这样做,它也关闭了流)它并null在关闭它时将其设置为.

您可以选择检查EndOfStream,但这需要您阅读流的末尾.

  • @Chostakovitch:意见各不相同,但我的观点是:如果它实现了`IDisposable`,请调用`Dispose`.这也是未来的证明,因为当Microsoft更新它并且它确实需要处理时,你是安全的. (2认同)