zoukankan      html  css  js  c++  java
  • C# IDisposable接口的使用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    using System.Data;

    namespace DisposeDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                PersonWrapper pw = new PersonWrapper();
                pw.Dispose();
                Console.WriteLine(pw.p == null);
                Console.Read();
            }
        }

        public class PersonWrapper:IDisposable
        {
            public Person p = new Person() { Name = "abc" };
            public void Dispose()
            {
                Dispose(true);
                GC.SuppressFinalize(this);
            }
            private bool disposed = false;
            protected virtual void Dispose(bool disposing)
            {
                // Check to see if Dispose has already been called.
                if (!this.disposed)
                {
                    // If disposing equals true, dispose all managed 
                    // and unmanaged resources.
                    if (disposing)
                    {
                        p = null;
                        // Dispose managed resources (like other .NET components)  
                    }
                    // Dispose UNMANAGED resources (like P/Invoke functions)
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                }
                disposed = true;
            }
        }


        public class Person 
        {

            public string Name { get; set; }

           
        }

      
    }
     

  • 相关阅读:
    java后台读取配置文件
    冒泡排序
    均分火柴
    Dos 批处理 Shutdown
    时间复杂度分析
    Python冒泡排序
    Python装饰器
    获取状态栏高度
    利用zxing生成二维码
    Android下利用zxing类库实现扫一扫
  • 原文地址:https://www.cnblogs.com/dxmfans/p/9434603.html
Copyright © 2011-2022 走看看