为什么对象ref1在Console.WriteLine(ref1)之后为GC准备好了?

ins*_*ide 1 c# heap stack

我开始在Nutshell中阅读c#5.0,现在我在Stack和Heap章节中有关于GC如何使用堆对象的示例:

StringBuilder ref1 = new StringBuilder ("object1");
Console.WriteLine (ref1);
// The StringBuilder referenced by ref1 is now eligible for GC.
Run Code Online (Sandbox Code Playgroud)

所以作者说在Console.WriteLine之后ref1对象已准备好用于GC,但是如果我想在我的程序中稍后使用ref1对象呢?

Bri*_*sen 5

只要您使用对象的引用,它就不具备收集资格.该示例的要点是表明由于ref1代码不再访问,因此可以在此之后的任何时刻收集对象.