IDispose パターンを実装する 2 つのクラスを使用したいとします。クラスの 1 つは、インスタンス化のために他のクラスを使用しますが、その後は必要ありません。「using」キーワードをスタックすると、(たとえば) フォントを使用している間、ファイルがロックされます。「コーディングの美しさ」の理由から、ファイルを使い終わった直後にファイルのロックを解除したい。
次の「タグのような」システムを見てください。
using1 (Stream stream = File.OpenRead("font.ttf"))
using2 (Font font = FontExtensions.FromStream(stream, 32))
ENDusing1
//use font here
ENDusing2
コードブロックがどのように設計されるかという階層的な方法は、これの現在の処理に(美しさの)制限を課します。もちろん、これは try/finally ブロックを使用して解決できますが、これらは適切ではありません。
(笑) ネストされた IDisposable オブジェクト/ストリームを使用する基本的な設計が欠けていますか?
tag-code-blocks とこれを解決する最善の方法 (コーディングの美しさ) について意見を共有してください。