それは私がそれを言うMSDNにstackoverflow answerstringreaderとstringwriterでdisposeを呼び出す必要があるのはなぜですか?
StringWriter
implments public abstract class TextWriter : MarshalByRefObject, IDisposable
を読んで始まります。
Frameworkは、開発者にマニュアルを提供するために、 を実装する必要がありSystem.IDisposableインタフェースを提供します管理されていない リソースが不要になるとすぐに解放します。
アンマネージドリソースとは何ですか?私は明らかにStringWriter
の資格はないと思います。私はIDisposableインターを継承せずに自分自身を記述する場合は....私はDispose()
class ConfusedDevStringWriter{
private StringBuilder sb;
public ConfusedDevStringWriter(){ //ctor
sb = new StringBuilder();
}
}
を追加する必要が表示されず、実際に私は、Visual Studioのメモリデバッガでテスト:、関数が戻ったら StringWriter
とその解放されStringBuilder
... Moreoeverは、処分を呼び出すと、そうではない...にStringWriterために何もしないようにinheすべてのクラスを
IDisposable
からの有用性は有用である
Dispose
である。再度これは私の質問に戻る
管理されていないリソースとみなされるもの(例は非常に高く評価されますn_n)。私はファイルがそれの一つだと聞いた...しかし、CLRのVMではない?...すべてのリソースは、それによって管理されるべきではない? IDisposable
を実装し、気にすることなく等1が安全TextWriter
の任意のサブクラスを処分することができますのでストリーム、ファイルハンドル、などのアンマネージリソースを持っているいくつかのサブクラスを持って抽象TextWriter
、から
あなたは「*管理されていないリソースと見なされるもの*」には既に回答があります:http://stackoverflow.com/questions/3433197/what-exactly-are-unmanaged-resources – user3185569
質問には多かれ少なかれhttp ://stackoverflow.com/questions/234059/is-a-memory-leak-created-if-a-emorystream-in-net-is-not-closed(MemoryStreamについては同じQ)。 –
私はそれをhttp://stackoverflow.com/questions/2475228の複製としてクローズしました。それはそれとhttp://stackoverflow.com/questions/3433197の間に両方の質問に答えます。 –