投稿者 よねKEN  () 投稿日時 2008/7/15 18:52:00
>>5 
私の2の投稿で提示したURLはご覧になりましたでしょうか? 
 
> とりあえず、特に何も処理を行う必要がない場合でも将来の改造に備えて Dispose メソッドを実装しておきは空にしておき、使う側は独自に作成したクラスには必ず Dispose メソッドがあるのでとりあえず呼んでもらう。 
 
上記のURLを読んだ上での判断であれば止めはしませんが、すべてのクラス/構造体にDisposeメソッドを実装するというのは乱暴な処置ですのでお勧めしません。 
 
・クラス/構造体を新たに定義する度に、意味もなくIDisposableインターフェースの実装、及び、Finalizeメソッドのオーバーライドが必要。 
  →クラス/構造体を定義する人は皆が一様にIDisposable、Finalizeの正しい実装方法を知っている必要がある。 
 
・クラス/構造体の利用側も、意味も解らずにとりあえずDisposeを呼ばなければならない 
  →呼び忘れが発生する。 
 
・必ず呼ばなければならない、本当に意味のあるDisposeメソッドが大量のDisposeメソッドの呼び出しに埋もれてしまう。また、本来の処理上で重要なメソッド以上にDisposeメソッドの呼び出しばかりになり、処理の流れが追いづらい。 
 
・自作クラス/構造体は必ずDisposeメソッドを呼ぶことになるが、.NET FrameworkのクラスはDisposeの必要なものもそうでないものもあるため、一部にDisposeメソッドを呼べない部分が残り、結局はDisposeメソッドの呼び出しが必要かどうかを取捨選択する必要がある。 
 
といった理由です。