私は次のコードを持っています:
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 の呼び出し時に呼び出されると思っていましたが、そうではありませんでした。
誰かが私に理由を説明できますか?