I wrote this code:
dog joe = new dog();
WeakReference wr = new WeakReference(joe);
if (wr.IsAlive)
{
Console.WriteLine("Yes,first time");
}
else
{
Console.WriteLine("No,first time");
}
GC.Collect();
if (wr.IsAlive)
{
Console.WriteLine("Yes,second time");
}
else
{
Console.WriteLine("No,second time");
}
And I expected to have this result: Yes,first time No,second time
but it seems that GC didn't collect my WeakReference's target(joe). and result was: Yes,first time Yes,second time
What is my problem?.. do I misunderstand the WeakReferences?