Effective C# 3rd 読書メモ 46 リソースの後始末にusingとtry/finallyを利用する

.NET Frameworkの管理下にない(アンマネージド)リソースを使用する型は、Dispose()メソッドによって明示的に解放すべきである。Dispose()メソッドをもつ型を使うときに、Dispose()を実行するのは あなたの 責任である。Dispose()が必ず呼ばれるようにする最良の方法は、using文を使うか、try/finallyブロックを使うかである。

同様の処理をtry/finallyで書くと以下のようになる。

usingはコンパイル時の型がIDisposableを実装している場合にのみ利用可能で、任意の型に対して利用できるわけではない。

以下のように、usingをキャストと共に使うと、(1) objがIDisposableを実装している場合は、using文が実行される (2) objがIDisposableを実装していない場合は、using文は実行されない という結果になる。

コメントを残す