本帖最后由 qq285181913 于 2014-07-30 20:44:19 编辑

解决方案 »

  1.   

    运行 了  GC.Collect();
    mainReference.IsAlive还是为true,还是没被清除吧
      

  2.   

    回收了你还写Console.WriteLine(main.getTwoValue()); ??
      

  3.   

    GC.Collect();并不保证一定执行回收。
      

  4.   

    main变量一直保持着对象的强引用,当然不会回收。
      

  5.   


    GC.Collect(); 回收的mainReference 这个对象吧,如果被回收了 mainReference.IsAlive 就会是false,它就不执行那个Console.WriteLine(main.getTwoValue());了,mainReference.IsAlive为true说明它没有被回收
      

  6.   

    既然测试了mainReference.IsAlive,那测试之前,mainReference对象一定不会被回收。
      

  7.   


    你对了,main对象一直对它的引用,所以没有被清除,知道了