はてブの整理を行っていた時に掘り起こしました。
@ITの掲示板で、以下の質問がありました。
「Dispose の意味が未だわからないのですが」
質問の概要は、なんで finally で Dispose の呼び出しを保証しないといけないのか?
という事なのですが、当時いろいろなC#の入門サイトを見ていた私も不思議でした。
今改めて考えてみると、
「Dispose の呼び出しを必ずしないといけない」と規則のように考えるから混乱するのであって、
Disposeメソッドがあるようなクラスは、ほぼ何かのリソースを確保していて、
それを開放しないと、リークしてしまいます。
try してリークしたくなかったら finally にちゃんとDispose書いとかないと抜け道ができるよ。
リソース開放されないの気持ち悪いでしょ。何かのバグになるかもよ。
だからfinallyにつけとこうよ。
という事なんだと理解しています。
しかし、C#には usingステートメントという便利なものがあるのだから、そもそもこの議論は無意味なんですよね。