3

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

在我的构造函数中,我想对传入的 TextWriter 执行一些验证。问题是我似乎无法弄清楚如何检查 TextWriter 是打开还是关闭。如果 BaseStream 属性为空,则 StreamWriter 是可能的。但是 TextWriter 没有这个属性。还有另一种检查 TextWriter 是否打开的方法吗?

4

1 回答 1

0

你可以这样尝试:

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

即,如果BaseStreamNULL,那么 writer 已经被释放。

还建议为此使用该using块,因为它会处理此问题。

于 2015-03-17T05:54:59.417 回答