首页 > 代码库 > 弱引用
弱引用
默認對象實例化後得到的都是強引用,不過有些時候對於一些複雜的大對象,出於性能考慮,并不希望進行頻繁的初始化,此時弱引用就可以派上用場。
用法:先用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
弱引用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。