如果using一个FileStream,是否会隐含调用Close()?
FileStream如果是继承了IDisposable的话,那么我using(FileStream fs=...),在using结束的时候,是否会触发其Close()函数?
因为没有.net的源代码,如何确定有还是没有呢?
------解决方案--------------------不会调用Close,但是会调用Dispose.
用reflector看了下.net的代码。Close和Dispose都是继承自Stream, FileStream没有自己的实现。
[code=csharp
]public virtual void Close()
{
this.Dispose(true);
GC.SuppressFinalize(this);
}[/code]
public void Dispose()
{
this.Close();
}
从代码中可以看到Dispose中调用了Close,因此lz可以放心了。