IDisposableという、さかしいインターフェースをご存知だろうか? C#からC++を呼び出すなどで外部DLLを扱う場合に割り当てたメモリーや、ファイルハンドル、Bitmapクラスなどアンマネージドリソースを明示的に開放する方法を定義したもので、MSDNには、Dispose()というメソッドのみが用意されている。 IDisposable インターフェイス (System) 要は、このメソッドの中で、クラスが持っているリソースを開放するだけなのだけれど、単にこのメソッドを実装するだけではダメな意地のわるいインターフェース。 今回は、そんな困ったチャンを正しく使う方法をまとめる。方法だけ知りたいせっかちな御仁は最後のセンテンスだけ読めばOK。 まずはDispose()を実装する 兎にも角にも、まずは実装してみる。 メンバーにアンマネージドリソースを持っているクラスを考える。 interna
![[C#]イマイチ分かりにくいIDisposableの実装方法をまとめる。 | TOACH](https://cdn-ak-scissors.b.st-hatena.com/image/square/39a807a4f4b373ad3b716c0f108acf4758233b5e/height=288;version=1;width=512/http%3A%2F%2Ftoach.sakura.ne.jp%2Fbase%2Fwp-content%2Fuploads%2F2015%2F10%2Fdevil-girl-engineer-1024x683.jpg)