用代碼說明:
代碼
class Program
{
static void Main(string[] args)
{
DoWork();
Console.WriteLine(P.Target == null);
GC.Collect();
Console.WriteLine(P.Target == null);
Console.ReadLine();
}
public static WeakReference P;
public static void DoWork()
{
var p = GetPerson();
P = new WeakReference(p);
}
public static Person GetPerson()
{
return new Person();
}
}
public class Person : IDisposable
{
public Person()
{
for (int i = 0; i < new Random().Next(18, 80); i++)
{
this.Memo.Append((char)new Random().Next(97, 123));
}
}
public StringBuilder Memo { get; set; }
public bool IsDisposed { get; set; }
#region IDisposable 成員
public void Dispose()
{
if (!this.IsDisposed)
{
Console.WriteLine(