码迷,mamicode.com
首页 > Windows程序 > 详细

c#之如何正确地实现IDisposable接口

时间:2017-05-27 17:12:14      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:.com   ted   释放   title   应该   方法   oid   xxx   代码   

见实例:

public class TestClass : IDisposable
{
    //供程序员显式调用的Dispose方法
    public void Dispose()
    {
        //调用带参数的Dispose方法,释放托管和非托管资源
        Dispose(true);
        //手动调用了Dispose释放资源,那么析构函数就是不必要的了,这里阻止GC调用析构函数
        GC.SuppressFinalize(this);
    }

    //protected的Dispose方法,保证不会被外部调用。
    //传入bool值disposing以确定是否释放托管资源
    protected void Dispose(bool disposing)
    {
        if (disposing)
        {
            ///TODO:在这里加入清理"托管资源"的代码,应该是xxx.Dispose();
        }
        ///TODO:在这里加入清理"非托管资源"的代码
    }

    //供GC调用的析构函数
    ~TestClass()
    {
        Dispose(false);//释放非托管资源
    }
}

转载请注明出处:http://www.cnblogs.com/jietian331/p/6913410.html

c#之如何正确地实现IDisposable接口

标签:.com   ted   释放   title   应该   方法   oid   xxx   代码   

原文地址:http://www.cnblogs.com/jietian331/p/6913410.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!