Delphi中的Free和Nil


本文整理自网络,侵删。

 Delphi中的Free和Nil

在Delphi中释放对象资源时一般用Obj.Free(Obj为一个实例名),不过程Delphi中还有一个FreeAndNil(对象名)函数,那么用哪个好呢?Free和Nil的本质又都是什么呢?

在Delphi中一个对象名只是一个指向该对象的指针,可以有多个指针指向同一个对象地址。Nil是将指针置空,而Free则将指针指向的对象销毁掉。如下所示:

Obj.Free; //将Obj所指向的对象销毁。

Obj:= nil; //将Obj指针置空。如果将上面的一句放在后面,则Free时会报错,因为指针不指向该对象的地址,也不指向任何内存地址。

还有在销毁对象时一定要注意,看还有没有其他指针指向该对象,如果有却销毁掉了,那么其他指针调用该对象时会报错。如果有多个指针指向同一个对象时,不要用FreeAndNil来销毁对象,因为不确定是否还有指针指向该对象,此时只需把不用的指针置空就行了,不过在所有指针都不指向该对象时,一定要记得销毁掉,以释放资源。

相关阅读 >>

Delphi 获取 treeview选中的文件路径

Delphi的tfilestream 内存流

Delphi mscomm 发送接收

Delphi10.3构造一个json数据的第二种方法,并格式化输出

Delphi整理三(窗体和基本组件)

Delphi 日期相减 比较大小 过期时间函数

Delphi窗口界面必学的知识

Delphi 创建win桌面快捷方式,实现360桌面图标数字提示 或 类似安卓的右上角的数字提示

Delphi2007-Delphi2010 程序不出现在任务栏的方法

Delphi 写开关防火墙代码

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



打赏

取消

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

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

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

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

评论

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