我怎么知道一个对象是否已经被垃圾回收了?
我怎么知道一个对象是否已经被垃圾回收了?
根据这篇文章:
通常情况下,无法通过对对象的引用来判断其是否已被垃圾回收,因为一旦您拥有了该对象的引用,它就不会被垃圾回收。
相反,您可以使用WeakReference对象创建一个弱引用对象。弱引用不会被计算为对垃圾回收的引用。
在下面的代码中,我们在垃圾回收前后进行检查,以显示Dog对象已被垃圾回收。
Dog dog = new Dog("Bowser");
WeakReference dogRef = new WeakReference(dog);
Console.WriteLine(dogRef.IsAlive);
dog = null;
GC.Collect();
Console.WriteLine(dogRef.IsAlive);