using System; class Class1 : WeakReference { Class1(object obj) : base(obj) { } static void Main(string[] args) { Class1 r = new Class1("foo"); Console.WriteLine(r.Target); Class1 clone = (Class1)r.MemberwiseClone(); GC.Collect(); GC.WaitForPendingFinalizers(); new Class1("bar"); Console.WriteLine(clone.Target); } }