我正在编写一个将数据导出到 CSV 文件的类,它的构造函数接受一个 TextWriter。我使用 TextWriter 而不是 StreamWriter 的原因是这样可以使测试更容易:我可以使用相同的构造函数写入 StreamWriter(写入文件,预期用例)和写入 StringWriter (这对测试很有用)。
在我的构造函数中,我想对传入的 TextWriter 执行一些验证。问题是我似乎无法弄清楚如何检查 TextWriter 是打开还是关闭。如果 BaseStream 属性为空,则 StreamWriter 是可能的。但是,TextWriter 没有此属性。是否有另一种检查 TextWriter 是否打开的方法?
你可以这样尝试:
if( writer.BaseStream != null)
{
writer.WriteLine("Writer is open");
}
else
{
MessageBox.Show ("Writer is closed");
}
即,如果 BaseStream
为 NULL,则 writer 已被释放。
还建议为此使用 using
block ,因为它会处理这个问题。
我是一名优秀的程序员,十分优秀!