最終更新: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 メソッドを呼び出して破棄しなければなりません。
  • メソッドの役割は、メモリを解放することではなく、使い終わったオブジェクトの後処理をすること

メソッド