在 Dispose 方法中写入流/finalyze

Write to stream / finalyze in Dispose method

我有 class 在构造函数中写入文件头。然后用户调用将数据块写入流的方法。然后在 Dispose 中我正在写尾部数据。

我不想提取任何可以执行此操作的特定方法 - 因为它会破坏封装并且用户总是忘记调用它。使用 "using" 构造是首选。

我想知道在 Dispose 中写任何东西在概念上是否正确?

当然是正确的。框架中的许多 类 都是这样做的。例如 FileStream 将在 Dispose 刷新其缓冲区,这将写入文件。 BufferedStreamStreamWriter

相同

只是不要将 DisposeFinalize(终结器,又名 ~YourClass)混淆 - 这不是一回事,依赖这个将是 非常糟糕™。