IDisposableインターフェイスを実装するクラスの例として、FileStreamクラスを挙げます。 FileStreamでは、内部で保持しているファイルハンドルはFileStreamが破棄される時点で同時に破棄されるように実装されていますが、必要なくなったらその時点で明示的に破棄させることもできるようになっています。 FileStreamクラスではCloseメソッドまたはDisposeメソッドを呼び出すことで明示的にファイルハンドルの破棄を指示できます。
IDisposableインターフェイスを実装するクラスでの明示的なリソースの破棄
using System;
using System.IO;
class Sample {
static void Main()
{
// FileStreamでファイルを開く
var stream = new FileStream("file.dat", FileMode.Open, FileAccess.Read, FileShare.Read);
stream.ReadByte();
// Disposeメソッド、あるいはそれを呼び出すメソッド(FileStreamの場合はClose)を呼び出して解放する
// FileStreamがガベージコレクタによって破棄されるよりも前の時点で、
// 明示的に保持しているファイルハンドルを破棄させることができる
stream.Close();
}
}
より詳しくは§.IDisposableインターフェイスで解説します。