>>781

GCを持ってる言語では、オブジェクトが破棄されるタイミングは分からないからデストラクタには頼れない。

C#では構文的にはデストラクタを定義できるけど、実際にできるものは
C++のデストラクタよりも、Javaのファイナライザに近いものだと思ったほうがいい。
(というか、デストラクタは内部的には Finalize() メソッド扱いされる。)

で、ファイナライザの起動までリソースを開放しないのは勿体無いし、
大体、ファイナライザは呼ばれる保証がない(プログラム終了時にはファイナライザは呼ばれない)から、
Disposable パターンを使わないといけない。

>>782
CloseがDisposeを呼んでるんじゃなくて、DisposeがCloseを呼んでるんじゃないか?