如何判断对象是否已被垃圾收集?
答案 0 :(得分:29)
根据this:
您通常无法通过使用对象的某些引用来判断对象是否已被垃圾收集 - 因为一旦您有对该对象的引用,它就不会被垃圾回收。
您可以使用WeakReference对象创建对对象的弱引用。出于垃圾收集的目的,弱引用是不计入引用的引用。
在下面的代码中,我们检查垃圾收集之前和之后,以显示Dog对象是垃圾收集。
Dog dog = new Dog("Bowser");
WeakReference dogRef = new WeakReference(dog);
Console.WriteLine(dogRef.IsAlive);
dog = null;
GC.Collect();
Console.WriteLine(dogRef.IsAlive);