当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。

Delphi的注销方法有两个:Destroy和Free。Delphi建议使用Free,因为它比Destroy更为安全,同时调用Free会生成效率更高的代码。

您可以用下列的语句释放用完的Employee对象: 

Employee.Free; 

和Create方法一样,Free方法也是TEmployee从TObject中继承过来的。把您的注销放在try…finally程序模块的finally部分,而把对象的程序代码放在try部分是编程的好习惯。这样,即使您的程序代码在使用对象时发生了异常事件,也会确保您为这个对象分配的内存会被释放。

二者的区别是,Destroy    会直接释放对象,而Free会事实检查该对象是否存在,如果对象存在,或者对象不为nil,它才会调用Destroy。因此,程序中应   
     该尽量使用free来释放对象,这样更加安全一些。(但要注意,free    也不会自动将对象置为nil,所以在调用free之后,最好是再手动将对象置为nil。)
      TObject类有一个虚拟的Destroy虚构函数和一个非虚拟的Free函数。Free函数中是调用Destroy的。因此,当我们对任何对象(都是TObject的子类对象)调用    .Free();之后,都会执行    TObject.Free();,它会调用我们所使用的对象的析构函数    Destroy();。这就保证了任何类型的对象都可以正确地被析构

http://blog.csdn.net/zang141588761/article/details/59480978

最新文章

  1. C#对象序列化与反序列化zz
  2. DDD 领域驱动设计-看我如何应对业务需求变化,领域模型调整?
  3. CoreCLR 在 Linux 下编译成功
  4. Asp.net 实现Session分布式储存(Redis,Mongodb,Mysql等) sessionState Custom
  5. Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中
  6. Poj(3259),SPFA,判负环
  7. 获取sde 工作空间 propertys
  8. iOS实用的小技巧
  9. C和指针 (pointers on C)——第四章:语句(上)
  10. css3实现钟表特效
  11. 传统web和mvc的区别
  12. vector中的find
  13. 使用mysql-mmm实现MySQL高可用集群
  14. 国内不谈java
  15. 机器学习--kNN算法识别手写字母
  16. 详解EBS接口开发之供应商导入(补充)--供应商银行账户更新
  17. RHEL7恢复root密码
  18. 系统windows版本修改
  19. python 拷贝文件
  20. SharePoint 2016 站点注册工作流服务报错

热门文章

  1. SecureCRT连接虚拟机中的Linux
  2. 五笔字根--good
  3. 什么是“恶意代码”——————【Badboy】
  4. 调试分析工具 (C/C++)
  5. Linux四个常用的指挥机关处理具体的解释
  6. Alien Widgets加速了绘制、减少了闪烁。但通过设置,还可以使用Native Widget
  7. tinkerpop(1) 地图数据库console科研
  8. mysql升级到5.7时间戳(timestamp)默认值报错
  9. WPF 曲线图表控件(自制)(二)
  10. 简明Python3教程 17.更多