Delphi的对象注销方法Destroy和free的区别


本文整理自网络,侵删。

 
当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。
         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();。这就保证了任何类型的对象都可以正确地被析构

相关阅读 >>

Delphi 使用tnethttprequest / tnethttpclient访问web服务器

Delphi中frame和form有何区别

Delphi 判断dll动态链接库是否可用

Delphi strtofloat 将“字符型”转换成“浮点型”

Delphi xe ioutils tpath(结构体) 的方法与属性

Delphi 时间耗时统计

Delphi编写系统服务

Delphi 2009 indy10 idhttp get 中文出现乱码的问题

Delphi listview用法

Delphi filesearch 获取指定文件夹下所有文件包括隐藏文件

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...