有没有办法检查TextWriter是否已关闭



我正在编写一个将数据导出到CSV文件的类,其构造函数接受TextWriter。我之所以使用TextWriter而不是StreamWriter,是为了让测试更容易:我可以使用相同的构造函数来写入StreamWriter(写入文件,这是预期的用例)和StringWriter(这对测试很有用)。

在我的构造函数中,我想对传入的TextWriter执行一些验证。问题是,我似乎不知道如何检查TextWriter是打开还是关闭。如果BaseStream属性为null,则StreamWriter可能会出现这种情况。但是,TextWriter没有此属性。是否有其他方法可以检查TextWriter是否打开?

您可以这样尝试:

if( writer.BaseStream != null)
{
   writer.WriteLine("Writer is open");
}
else
{
   MessageBox.Show ("Writer is closed");
}

即,如果BaseStreamNULL,则写入程序已被释放。

此外,建议使用using块来处理此问题。

相关内容

  • 没有找到相关文章

最新更新