在另一个
question中,我发现Assigned()
函数与Pointer&零.一直以来,我的理解是Assigned()正在检测这些悬挂的指针,但现在我已经学会了.悬挂指针是可能在某一点创建的指针,但是自从被释放并且尚未分配到零.
如果Assigned()无法检测到悬挂指针,那么可以呢?我想检查我的对象,以确保它真的是一个有效的创建对象,然后再尝试使用它.我不使用FreeAndNil,因为我很喜欢直接.我只是使用SomeObject.Free.
访问违规是我最大的敌人 – 我尽我所能防止他们的出现.
如果范围中有一个对象变量,它可能是也可能不是一个有效的引用,那么FreeAndNil就是你应该使用的.这样或修复你的
代码,以便您的对象引用被更加严格的管理,所以它永远不会是一个问题.
访问违规不应被视为敌人.它们是错误:它们意味着你犯了一个需要修复的错误. (或者你依赖的一些代码中有一个错误,但是我经常发现我是一个搞砸的人,特别是在处理RTL,VCL或Win32 API时).
原文链接:https://www.f2er.com/delphi/101369.html