为什么 Stream 类实现 IDisposable
本文关键字:IDisposable 实现 Stream 为什么 | 更新日期: 2023-09-27 17:57:16
为什么 Stream 类实现 IDisposable?我认为 Stream 类本身没有任何非托管资源。当然,一些子类具有非托管资源(例如FileStream),但并非所有子类都具有非托管资源(例如MemoryStream)。
如果上述问题的答案是"因为 Stream 类的子类可能具有非托管资源",那么为什么 Object 类不实现 IDisposable?
没有人说资源必须不受管理。 它有需要清理的资源。 您可以使用 Close()
完成同样的事情,但这个想法是您可以将它与 using
语句一起使用,然后即使在异常的情况下,也可以保证清理资源。
using (var s = new System.IO.MemoryStream())
{
//do something.
}