查阅了.NET源码中的Stream类
因此,我们可以得出以下结论:继承自Stream的流调用Dispose和Close方法是等价的,所以在使用using语句来释放流的时候,不需要再显示的调用Close方法。
发现其对于IDisposable接口的实现如下
public void Dispose()
{
/* These are correct, but we'd have to fix PipeStream & NetworkStream very carefully.
Contract.Ensures(CanRead == false);
Contract.Ensures(CanWrite == false);
Contract.Ensures(CanSeek == false);
*/
Close();
}
注意,此方法是继承自IDisposable接口,且此处该方法并没有写成virtual方法
因此,我们可以得出以下结论:继承自Stream的流调用Dispose和Close方法是等价的,所以在使用using语句来释放流的时候,不需要再显示的调用Close方法。