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");
このクラスには、アンマネージリソース(ファイル)を保持するマネージリソース(FileStream)があるため、IDisposableを実装する必要がありますか?または、クラス内でクリーンアップしているため、IDisposableを実装する必要はありませんか?
混乱している。