我有以下代码:
public class A
{
~A()
{
Console.WriteLine("destructor");
}
}
public static A Aref;
static void Main(string[] args)
{
Aref = new A();
int gen = GC.GetGeneration(Aref);
Aref = null;
GC.Collect(gen, GCCollectionMode.Forced);
Console.WriteLine("GC done");
}
我认为我的 Finalizer 方法会在我调用 GC.Collect 时被调用,但事实并非如此。
谁能解释我为什么?