public class Photo : IDisposable
{
//在Finalize函数中调用内部的Dispose方法
~Photo()
{
//被自动回收时仅释放托管资源,不释放非托管资源
Dispose(false);
}
//提供了自命名的释放资源方法
public void Close()
{
//当显式回收时则释放所有资源
Dispose(true);
}
#region IDisposable接口显式实现
//显式实现IDisposable接口,避免同时出现Dispose方法和自定义命名方法(Close)
public void IDisposable.Dispose()
{
//释放所有资源
Dispose(true);
//避免重复调用Finalize函数
GC.SuppressFinalize(this);
}
#endregion
//内部的Dispose方法,真正实施资源释放工作
protected virtual void Dispose(bool disposing)
{
if(disposing==true)
{
//释放托管资源
}
//释放非托管资源
}
}

最新文章

  1. 纪录我的iOS学习之路
  2. YbSoftwareFactory 代码生成插件【十六】:Web 下灵活、强大的审批流程实现(含流程控制组件、流程设计器和表单设计器)
  3. 蓝牙4.0 BLE基础之vdd检测new
  4. 误将文件push到Git,如何删除
  5. [VBS]遍历XML文档
  6. Python中的*args和**kwarg
  7. js实现按回车自行提交
  8. HDU 1004 ballons(map)
  9. 版本和API Level对照表
  10. C++ HttpServlet 高并发多线程 HTTP 服务器(转)
  11. 多层次的Json字符串转化为对象
  12. iOS UIAlertView 文字对其方式 文字大小 设置方法
  13. python脚本对 mysql数据库进行增删改查操作
  14. odoo中各视图写法
  15. python 管道、数据共享、进程池
  16. Arithmetic Slices LT413
  17. golang的日志系统log和glog
  18. CentOS下用yum命令安装jdk
  19. LinkedList剖析
  20. hdfs的FileSystem实例化

热门文章

  1. YTU 2422: C语言习题 n个数逆序
  2. maven安装的详细步骤
  3. 关于JQuery获取元素索引值的理解
  4. ${varname:-defaultvalue}
  5. GCD基础知识
  6. GYM 100741A Queries
  7. MYSQL数据库学习----MYSQL函数
  8. Linux Cache 机制
  9. JavaScript-Tool:Uploadify-un
  10. 仿照 QQ 的 cell 的左滑删除、置顶、标记未读效果