我正在编写一个将数据导出到CSV文件的类,其构造函数接受一个TextWriter。我使用TextWriter而不是StreamWriter的原因是它可以使测试更容易:我可以使用相同的构造函数来写入StreamWriter(写入文件,预期的用例)并写入一个StringWriter(对测试很有用)。
在我的构造函数中,我想对传入的TextWriter执行一些验证。问题是我似乎无法弄清楚如何检查TextWriter是打开还是关闭。如果BaseStream属性为null,则StreamWriter可能。但是,TextWriter没有此属性。还有另一种检查TextWriter是否打开的方法吗?
答案 0 :(得分:-1)
您可以尝试这样:
if( writer.BaseStream != null)
{
writer.WriteLine("Writer is open");
}
else
{
MessageBox.Show ("Writer is closed");
}
,即如果BaseStream
NULL ,则编写器已经处理完毕。
此外,建议您使用using
块来处理此问题。