How to Tell If an Object Has Been Garbage Collecte

2020-03-01 07:44发布

问题:

How I can know to tell if an Object has been garbage collected or not?

回答1:

According to this:

You normally can’t tell whether an object has been garbage collected by using some reference to the object–because once you have a reference to the object, it won’t be garbage collected.

You can instead create a weak reference to an object using the WeakReference object. The weak reference is one that won’t be counted as a reference, for purposes of garbage collection.

In the code below, we check before and after garbage collection to show that a Dog object is garbage collected.

        Dog dog = new Dog("Bowser");

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

        dog = null;
        GC.Collect();

        Console.WriteLine(dogRef.IsAlive);