尝试了解何时需要实施 IDisposable:
我写了一个小例子。
public class FileManager
{
private FileStream fileStream;
public void OpenFile(string path)
{
this.fileStream = File.Open(path, FileMode.Open, FileAccess.Read);
}
public void CloseFile(string path)
{
if ( this.fileStream != null && this.fileStream.CanRead)
{
this.fileStream.Close();
}
this.fileStream.Dispose();
}
}
// client
var manager = new FileManager();
manager.Open("path");
manager.Close("path");
这个类是否需要实现 IDisposable,因为它有一个托管资源 (FileStream),它持有一个非托管资源(一个文件)?或者我不必实现 IDisposable 因为我在课堂上进行清理?
使困惑。