为什么Stream类实现IDisposable?

时间:2015-06-21 13:23:24

标签: c# .net

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

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

1 个答案:

答案 0 :(得分:1)

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

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