Effective C# 3rd 読書メモ 21 ジェネリッククラスは必ずDisposableな型パラメータをサポートするようにする

ジェネリッククラスでIDisposableを実装している型を受け取る際は、適切にリソースを破棄する必要がある。
リソースの破棄には以下のようなイディオムが利用できる。

somethingIDisposableを実装していない場合、キャストの結果はnullになるので、usingのブロックは実行されない。

ジェネリッククラス自身がIDisposableを実装しなければならない場合、実装はやや面倒になる。

ここでは、クラスをsealedにすることで、Disposeが必ず実行されるようにしている。

リソースの生成・破棄をクラスの責務から外すことで、実装を簡素化することもできる。

コメントを残す