Delphi中的Free和Nil之理解
2020-02-14 21:13
302 查看
在Delphi中释放对象资源时一般用Obj.Free(Obj为一个实例名),不过程Delphi中还有一个FreeAndNil(对象名)函数,那么用哪个好呢?Free和Nil的本质又都是什么呢?
在Delphi中一个对象名只是一个指向该对象的指针,可以有多个指针指向同一个对象地址。Nil是将指针置空,而Free则将指针指向的对象销毁掉。如下所示:
Obj.Free; //将Obj所指向的对象销毁。
Obj:= nil; //将Obj指针置空。如果将上面的一句放在后面,则Free时会报错,因为指针不指向该对象的地址,也不指向任何内存地址。
还有在销毁对象时一定要注意,看还有没有其他指针指向该对象,如果有却销毁掉了,那么其他指针调用该对象时会报错。如果有多个指针指向同一个对象时,不要用FreeAndNil来销毁对象,因为不确定是否还有指针指向该对象,此时只需把不用的指针置空就行了,不过在所有指针都不指向该对象时,一定要记得销毁掉,以释放资源。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- delphi简单字符的加密与解密
- Delphi控件开发基础篇
- 关于DELPHI XE4 开发 IOS APP问题
- Delphi 封装(2)类的封装
- delphi中如何让主窗体在程序运行之初不显示
- 使用Delphi内置函数读写INI文件[转]
- delphi实现FTP上传与下载
- 关于Delphi中预编译指令的使用方法
- Delphi自动化控制Excel
- Delphi XE Refactor重构功能简单说明
- Delphi中Frame的使用方法
- 现在, Delphi 的多线程已经非常易用了!
- 一组 Delphi 快捷键
- Delphi xe6 学习过程
- delphi数据类型
- delphi常用函数过程
- delphi TFileStream.create
- delphi函数调用约定
- 充分利用Windows API扩展Delphi函数
- Delphi中BCD和Currency类型