使い捨てオブジェクトマネージャーを行う必要はないと思います。GC はすでにメモリを管理しています。ご存知かもしれませんが、Dispose メソッドは、.Net フレームワークに含まれる IDisposable インターフェイスから派生したものです。しかし、それは他の方法と同じです*。ガベージ コレクターは、オブジェクトのメモリを解放するために Dispose が呼び出されるのを待ちません。彼は、オブジェクトが常にどこかから到達可能かどうかを監視します。これは、どのオブジェクトが生きていて、どのオブジェクトが死んでいるかを判断するのに役立ちます。
続行する前に、GC 生成について少し読んでください。http://msdn.microsoft.com/en-us/library/ms973837.aspx
よくわかりませんが、new() が呼び出され、GC が実際に使用されている世代の容量に達すると、彼は次世代の「死んだ」オブジェクトをクリアします。おそらく私がそうしない他の時には。GC は非常に神秘的でミステリアスな実装です。おそらく C++ で処理されているからです。しかし、あなたはそれを気にする必要はありません。
場合によっては(モノ現像)、もっと気にした方がいいと聞きました。ただし、Microsoft 環境でコーディングする場合はそうではありません。
*私は言った:
他の方法と同じように
ただし、using ブロックを使用すると、IDisposable オブジェクトの Dispose メソッドを呼び出す必要がなく、そのメソッドを呼び出す自由が得られます。メソッド Dispose の既存の存在は、オブジェクトの使用を停止する前に解放する必要があるリソースを解放することです。
元:
public class Test : IDisposable
{
public void Dispose()
{
// release other necessary ressources if needed
Console.WriteLine("Disposed");
}
}
{
using (IDisposable disposable = new Test())
{
}
}
と同じ:
{
IDisposable disposable = new Test()
disposable.Dispose();
}
そのため、GC に自信を持つことができます。GC が確実にオブジェクト メモリを解放するようにしたい場合は、オブジェクトへのすべての参照を null にします。そしてGCはあなたのオブジェクトを「死んでいる」と見なします:P