09/03/01 21:06:06
IDisposableを実装するのは、破棄すべきアンマネージリソースがあるからであって、
その状態をきちんとマークしておけば、わざわざフラグなんか持つには及ばないと思うんだ。
たとえば、内部的に何かのWin32ハンドルを使っているとすれば、↓こんな感じで。
if (_hProc != IntPtr.Zero)
{
bool success = CloseHandle(_hProc);
if (success)
{
_hProc = IntPtr.Zero;
}
else
{
throw new Win32Exception();
}
}