弱引用

class MyWeakClass
    {
        public string world = "hello";
    }

    class Program
    {
        static void Main(string[] args)
        {

            MyWeakClass weakClass = new MyWeakClass();
            WeakReference weakClassRefrence = new WeakReference(weakClass);
            if (weakClassRefrence.IsAlive)
            {
                MyWeakClass weakClass2 = weakClassRefrence.Target as MyWeakClass;
                weakClass2.world = "hello weakRefrence";
                Console.WriteLine(weakClass2.world);
            }
            else
            {
                Console.WriteLine("weakClassRefrence is not available");
            }

            GC.Collect();
            if (weakClassRefrence.IsAlive)
            {
                Console.WriteLine("After GC weakClassRefrence is available,you can use the weakRefrence");
            }
            else
            {
                Console.WriteLine("After GC weakClassRefrence is not available");
            }
       }
   }

 

posted on 2018-01-21 22:35  强博员  阅读(70)  评论(0)    收藏  举报

导航