日期:2014-05-16  浏览次数:20907 次

如果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可以放心了。