本文介绍了如何正确实现IDisposable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的时间作为一个开发人员试图通过设置变量为空或thier自己的类中调用类上的Dispose()(数据集为例)Dispose()方法来帮助GC一起见过这么多的C#代码
我一直在想,如果有任何需要实现它在托管环境。



这段代码在其设计模式浪费时间吗?

  MyClass类:IDisposable的
{
#地区IDisposable的会员

公共无效的Dispose ()
{
otherVariable = NULL;
如果(数据集!= NULL)
{
dataSet.Dispose();
}
}

#endregion
}


解决方案

在GC的的通话 .Dispose()(它,然而,通话在敲定〜MyClass的()方法,它可以提供给的Dispose()方法的调用自动拥有的资源管理当GC决定要清理你的类)。



您必须提供配置内部资源,如数据集的方式来代码,使用你的类(并确保你实际调用 .Dispose()或包裹构造在使用)。 。使用的IDisposable 在你的类使用内部资源,强烈建议



从的:



public void Dispose()
{
    otherVariable = null;
    if (dataSet != null)
    {
        dataSet.Dispose();
        dataSet = null;
    }
}

这篇关于如何正确实现IDisposable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 05:20