zoukankan      html  css  js  c++  java
  • 泛型弱引用(不继承 System.WeakReference)

    代码
    public class WeakReference<T> : IDisposable
        {
            
    private GCHandle handle;
            
    private bool trackResurrection;

            
    public WeakReference(T target) : this(target, false) { }

            
    public WeakReference(T target, bool trackResurrection)
            {
                
    this.trackResurrection = trackResurrection;
                
    this.Target = target;
            }

            
    ~WeakReference()
            {
                Dispose();
            }

            
    public void Dispose()
            {
                handle.Free();
                GC.SuppressFinalize(
    this);
            }

            
    public virtual bool IsAlive
            {
                
    get { return (handle.Target != null); }
            }

            
    public virtual bool TrackResurrection
            {
                
    get { return this.trackResurrection; }
            }

            
    public virtual T Target
            {
                
    get
                {
                    
    object o = handle.Target;
                    
    if ((o == null|| (!(o is T)))
                        
    return default(T);
                    
    else
                        
    return (T)o;
                }
                
    set
                {
                    handle 
    = GCHandle.Alloc(value, this.trackResurrection ? GCHandleType.WeakTrackResurrection : GCHandleType.Weak);
                }
            }
        }
  • 相关阅读:
    KVC(key value coding)/ KVO(key value observing)
    手势识别
    导航控制器掌握内容:
    火车入轨_算法
    卡片游戏_算法
    Python合集之Python循环语句(一)
    Python合集之Python选择语句(四)
    Python合集之Python选择语句(三)
    Python合集之Python选择语句(二)
    Python合集之Python选择语句(一)
  • 原文地址:https://www.cnblogs.com/sofire/p/1754907.html
Copyright © 2011-2022 走看看