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

}

}

最新文章

  1. Java Annotation 注解
  2. C#微信公众号开发系列教程六(被动回复与上传下载多媒体文件)
  3. Java 设计模式泛谈&装饰者模式和单例模式
  4. “康园圈--互联网+校园平台“项目之Sprint3
  5. onethink 系统函数中 生成随机加密key
  6. Hibernate Dialect must be explicitly set
  7. gradle多模块开发(转)
  8. iOS下JS与OC互相调用(四)--JavaScriptCore
  9. .net mvc session失效问题
  10. Go调试工具—— Delve
  11. Java 之 XML
  12. 洛谷P3722 影魔 [AH2017/HNOI2017] 线段树+扫描线
  13. ORM数据库框架 SQLite ORMLite MD
  14. 【delphi】delphi出现‘尚未调用CoInitialize’异常
  15. 解决方案~Microsoft Security Client OOBE 程序错误
  16. python 简单爬虫(beatifulsoup)
  17. Linux高频指令总结
  18. [LintCode] 全排列
  19. 关系型数据库设计——E-R图
  20. Linux重定向: > 和 &> 区别

热门文章

  1. ios开发之坐标系转换
  2. .NET Framework基础知识(二)(转载)
  3. Android TextView,EditText要求固定行数自动调整TextSize
  4. Angular.js回想+学习笔记(1)【ng-app和ng-model】
  5. AJAX代码格式
  6. 面试无忧之Zookeeper总结心得
  7. Erlang 命令行监控工具
  8. POJ 2418-Hardwood Species(map)
  9. [MFC]SDI在图片背景上实现文本跟随鼠标移动
  10. VS2017十五项新功能体验