为什么 Stream 类实现 IDisposable

本文关键字:IDisposable 实现 Stream 为什么 | 更新日期: 2023-09-27 17:57:16

为什么 Stream 类实现 IDisposable?我认为 Stream 类本身没有任何非托管资源。当然,一些子类具有非托管资源(例如FileStream),但并非所有子类都具有非托管资源(例如MemoryStream)。

如果上述问题的答案是"因为 Stream 类的子类可能具有非托管资源",那么为什么 Object 类不实现 IDisposable?

为什么 Stream 类实现 IDisposable

没有人说资源必须不受管理。 它有需要清理的资源。 您可以使用 Close() 完成同样的事情,但这个想法是您可以将它与 using 语句一起使用,然后即使在异常的情况下,也可以保证清理资源。

using (var s = new System.IO.MemoryStream())
{
    //do something.
}