最終更新:2020-05-12 (火) 23:37:05 (1436d)
IDisposable
Top / IDisposable
C#では、オブジェクトが使われなくなったときにするべき処理は、Dispose()に実装するのが一般的。
IDisposableインタフェースがDispose()メソッドを持っているのでDispose()を実装するクラスは、IDisposableを継承する。
C#では何らかの終了処理が必要な場合は、以下のようにする必要がある。
- クラスの設計者は、IDisposableを継承してDispose()で終了処理を実装
- クラスの使用者は、クラスのオブジェクトを使用しなくなったらDispose()を明示的に呼ぶ
IDisposableを継承せずにDispose()を実装するとスコープを抜けたときにDispose()を自動で呼び出してくれるusingが機能しなくなる。
メモ
- インターフェースを実装するオブジェクトは、使い終わった時に必ず Dispose メソッドを呼び出して破棄しなければなりません。
- メソッドの役割は、メモリを解放することではなく、使い終わったオブジェクトの後処理をすること