15

オブジェクトがガベージコレクションされているかどうかを知るにはどうすればよいですか?

4

1 に答える 1

42

これによると:

通常、オブジェクトへの参照を使用しても、オブジェクトがガベージコレクションされたかどうかはわかりません。オブジェクトへの参照を取得すると、ガベージコレクションされないためです。

代わりに、WeakReferenceオブジェクトを使用してオブジェクトへの弱参照を作成できます。弱参照は、ガベージコレクションの目的で参照としてカウントされない参照です。

以下のコードでは、ガベージコレクションの前後をチェックして、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 に答える