15

我如何知道对象是否已被垃圾收集?

4

1 回答 1

42

据此:_

您通常无法通过对某个对象的引用来判断该对象是否已被垃圾回收——因为一旦您拥有对该对象的引用,它就不会被垃圾回收。

您可以改为使用 Wea​​kReference 对象创建对对象的弱引用。出于垃圾收集的目的,弱引用不会被视为引用。

在下面的代码中,我们在垃圾回收之前和之后检查以表明 Dog 对象已被垃圾回收。

Dog dog = new Dog("Bowser");

WeakReference dogRef = new WeakReference(dog);
Console.WriteLine(dogRef.IsAlive);

dog = null;
GC.Collect();

Console.WriteLine(dogRef.IsAlive);

在此处输入图像描述

于 2013-03-17T11:41:35.300 回答