本文介绍了如何正确实现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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!