単にリソースを明示的に解放できるようにしたいならば、IDisposableインターフェイスを使わずともRelease
やClose
といった解放用のメソッドを用意しておき、それらのメソッドを呼び出すようにすることもできます。 しかし、IDisposableを実装しておくと、usingステートメントによる構文の補助に基づく確実な解放処理が行えるようになります。 加えて、IDisposableインターフェイスによって、型が解放されるべきリソースを保持していることを表明できます。
Dispose
以外のメソッド名で解放処理を提供したいといった場合には、次の例のように別名の解放用メソッドを公開しつつ、IDisposable.Disposeメソッドは明示的に実装(またはPrivate
として実装)し、それを呼び出すようにすることができます。 このようにすることでDispose
以外のメソッド名で解放処理を提供できると同時に、IDisposableインターフェイスによる解放処理も提供できます。