• C#中的弱引用


    用代码说明:

    代码
        class Program
        {
            
    static void Main(string[] args)
            {
                DoWork();
                Console.WriteLine(P.Target 
    == null);
                GC.Collect();
                Console.WriteLine(P.Target 
    == null);

                Console.ReadLine();
            }

            
    public static WeakReference P;
            
    public static void DoWork()
            {
                var p 
    = GetPerson();
                P 
    = new WeakReference(p);
            }

            
    public static Person GetPerson()
            {
                
    return new Person();
            }
        }
        
    public class Person : IDisposable
        {
         
            
    public Person()
            {
            
                
    for (int i = 0; i < new Random().Next(1880); i++)
                {
                    
    this.Memo.Append((char)new Random().Next(97123));
                }
            }


            
    public StringBuilder Memo { getset; }


            
    public bool IsDisposed { getset; }
            
    #region IDisposable 成员

            
    public void Dispose()
            {
                
    if (!this.IsDisposed)
                {
                    Console.WriteLine(
    "Person Dispose...");

                    
    this.Memo.Remove(0this.Memo.Length);
                    
    this.IsDisposed = true;
                    GC.SuppressFinalize(
    this);
                }
            }

            
    #endregion

            
    ~Person()
            {
                Console.WriteLine(
    "Person Unctor...");
                
    this.Dispose();
            }
        }
  • 相关阅读:
    我在华为做敏捷测试的那些流程
    精简测试用例编写
    五步定位性能瓶颈
    敏捷软件测试--初见
    并发用户数与TPS之间的关系
    关于CSS样式的那些事_导航条菜单讲解
    关于字符串的一些简单编码题
    设置div控件居中的方法
    sqlplus登录Oracle时ORA-01017: invalid username/password; logon denied的错误
    java中的foreach输出数组中的元素
  • 原文地址:https://www.cnblogs.com/sofire/p/1744266.html
Copyright © 2020-2023  润新知