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; }

           
        }

      
    }
     

  • 相关阅读:
    2018年春季个人阅读计划
    软件需求与分析读后感
    假期读后感3
    假期读后感2
    假期读后感1
    四则运算2
    软件工程概论第一次作业
    《大道至简》读后感
    HMX-Server C++ 分步式服务器大版本更新了(有源码)
    HMX-Server-分步式服务器框架(开源+源码)
  • 原文地址:https://www.cnblogs.com/dxmfans/p/9434603.html
Copyright © 2011-2022 走看看