码迷,mamicode.com
首页 > 其他好文 > 详细

弱引用

时间:2014-08-31 15:42:11      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:style   color   io   ar   sp   on   line   new   c   

默認對象實例化後得到的都是強引用,不過有些時候對於一些複雜的大對象,出於性能考慮,并不希望進行頻繁的初始化,此時弱引用就可以派上用場。

用法:先用WeakReference包裝複雜對象,到需要該複雜對象的時候,檢查一下弱引用的IsAlive屬性,如果true,就可以通過Target直接得到複雜對象,省去了實例化的過程。

簡單的例子:

        static void Main(string[] args)
        {
            var weakRef GetWeakRef();
 
            GC.Collect();
 
            if (weakRef.IsAlive)
            {
                var obj weakRef.Target as ComplexObject;
                Console.WriteLine(obj);
            }
            else
            {
                Console.WriteLine("Reference is not available.");
            }
 
            Console.Read();
        }
 
        private static WeakReference GetWeakRef()
        {
            return new WeakReference(new ComplexObject());
        }

 

本例中如果調用了GC回收,輸出爲

Reference is not available.

如果不調用GC回收,輸出爲

ConsoleApplication1.ComplexObject

 

弱引用

标签:style   color   io   ar   sp   on   line   new   c   

原文地址:http://www.cnblogs.com/yetsen/p/3947620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!