我有来自 Jeffrey Richter 书中的示例代码,如下所示。
Object o = new Object();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 0.
GC.Collect();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 1.
GC.Collect();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 2 (expected) but it is 0
GC.Collect();
Console.WriteLine("Gen " + GC.GetGeneration(o)); // 2 (expected) but it is 1
谁能解释为什么对 GetGeneration 的第 3 次和第 4 次调用显示的是 0 代和 1 代而不是 2 代?