博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# IDisposable接口的使用
阅读量:5265 次
发布时间:2019-06-14

本文共 1055 字,大约阅读时间需要 3 分钟。

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

       

    }

  

}
 

转载于:https://www.cnblogs.com/dxmfans/p/9434603.html

你可能感兴趣的文章
android:scaleType属性
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
三维变换概述
查看>>
vue route 跳转
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
centos下同时启动多个tomcat
查看>>