オブジェクトプール(Object Pooling)をジェネリッククラスとして実装する際、プールへの「返却し忘れ」を防ぐための、`IDisposable` を活用したパターンはどれか。

`using (var obj = pool.Get(out var instance)) { … }` のように使い、Dispose内で `pool.Release(this)` を呼ぶ仕組みにすると、借りたものの返却漏れを構文的に防ぎやすい。