1
47
看到了吗
并看看实施情况:
示例考虑以下代码:
这将在我的桌面上创建错误或无效(空)位图,因为我尝试使用已释放的对象。是的,尽管如此
讨论
|
2
20
基本上,FreeAndNil将引用设置为 无 然后释放对象。这会将其标记为未分配。因此,您需要使用FreeAndNil的唯一原因是您的代码是否要重用引用。如果你在一个毁灭者或者 阻止,释放你永远不会再接触的物体,只要使用免费的。 Delphi Memory Management Made Simple 例如,当我发现它有用的时候。Mghie在底部的评论也值得一读。 |
3
9
我会用另一种方式回答。
也许,用
这样,您就不必区分从未使用过的引用(因此是
所以,用一个神奇的数字来填充它(类似于 FastMM --杰罗恩 |
4
7
你可以查看这些关于使用免费或免费和无的讨论链接 |
5
3
即使看起来与Free没有太大区别,FreeAndNil也能帮助您在代码中查找bug。
它如何拯救你的屁股(免费后进入)
但这还不是全部。如果你运气不好,程序不会立即崩溃。或者它永远不会崩溃,相反,它会读取或写入随机的内存块。这才是真正的痛苦开始的地方!
它会损害你的程序吗?
资源猪?
神与程序员
赞成的意见
艾伦·鲍尔有一篇文章叫 A CASE when FreeAndNil is your enemy 暗示在非常特殊的情况下使用FreeAndNil(可视组件的析构函数)可能是不好的。这篇文章没有我们可以编译的代码,只有一些 自由零的场景 可以
艾伦认为FreeAndNil应该被更好的方法所取代。例如使用FastMM。
|
Some1Else · 函数在Delphi中重新创建TForm 2 年前 |
Agmcz · Delphi安卓库。so未安装(AAB) 2 年前 |
nader · 如何使用delphi在web上提交表单 6 年前 |
kwadratens · Delphi中的卡方分布函数代码 6 年前 |
user9672569 · 如何在完整的位图图像中绘制阴影效果? 6 年前 |
mmmm · MSBuild(用于Delphi)Make-like功能 6 年前 |