我有一个单身般的类,它可以做一些日志输出:当我使用冲洗的StreamWriter
,在一个示例程序像
class Program
{
private static void Main(string[] args)
{
Foo.Instance.Log("asdf\n");
}
}
文件正在创建,但没有输出写入。我认为这是因为StreamWriter
从未被刷新过。
我试图打电话给Close()
在~Foo()
修复类:
~Foo()
{
os.Close();
}
但这产生了ObjectDisposedException
。当Foo
的析构函数被调用时,显然Foo.os
已经被处理。
如何确保我的StreamWriter
“最后”被刷新?
编辑
设置this.os.AutoFlush = true;
作品。将Flush()
方法添加到Foo
并在适当的地方调用它也可以,但是如果没有任何方法,我很感兴趣。
实现[IDisposable接口](https://msdn.microsoft.com/en-us/library/system.idisposable(v = vs.110).aspx) – Steve
我想到了这一点,但在给出的例子中'Dispose()'不会被调用。 – mkluwe
这是一个析构函数。它是不同的见:http://stackoverflow.com/questions/339063/what-is-the-difference-between-using-idisposable-vs-a-destructor-in-c – Steve