黑马程序员技术交流社区
标题:
都什么类实现了IDisposable接口??
[打印本页]
作者:
维纳斯之叶
时间:
2012-11-20 22:31
标题:
都什么类实现了IDisposable接口??
都什么类实现了IDisposable接口??
作者:
许庭洲
时间:
2012-11-20 22:47
本帖最后由 许庭洲 于 2012-11-20 22:50 编辑
可以通过自己添加的C#类来实现IDisposable接口,这些方法必须调用基类,否则,基类就不能正确地进行清理操作。
举例子:采用MyResourceHog类通过C#实现IDisposable接口
publicclassMyResourceHog:IDisposable
{
//已经被处理过的标记
privatebool_alreadyDisposed=false;
//终结器。调用虚拟的Dispose方法
~MyResourceHog()
{
Dispose(false);
}
//IDisposable的实现
//调用虚拟的Dispose方法。禁止Finalization(终结操作)
publicvoidDispose()
{
Dispose(true);
GC.SuppressFinalize(true);
}
//虚拟的Dispose方法
protectedvirtualvoidDispose(boolisDisposing)
{
//不要多次处理
if(_alreadyDisposed)
return;
if(isDisposing)
{
//TODO:此处释放受控资源
}
//TODO:此处释放非受控资源。设置被处理过标记
_alreadyDisposed=true;
}
}
作者:
陈辉
时间:
2012-11-21 08:47
一些非托管资源,文件资源、网络资源、图片资源、数据库资源等,这些资源都是很费内存的,应该用完就立即释放,具体的可以看看MSDN,上面有详细的说明
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2