对象为空,对象的地址是否也为空?

ok1411 2010-06-08 03:57:22
今天看到这样的代码,感觉怪怪的
if @CallProc <> nil then
CallProc();

CallProc是一个过程指针,如 TCallProc = procedure() of object;

想问下,这样的判断会有问题吗?
...全文
194 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Harryfin 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ok1411 的回复:]

对象存在时当然有地址,我是想确认下这种判断会不会有问题,就是说对象为nil时有没有可能@对象不为nil
是不是
if CallProc <> nil then 或者 if Assigned(CallProc) then
CallProc();
会更好?
[/Quote]
一样的。你能拿到的只有地址,至于地址指向的东西是不是有意义,你是无法知道的。因此只能通过地址来做判断。
林石公 2010-06-08
  • 打赏
  • 举报
回复
或许可以这样理解
对象为空,但对象的地址不一定为空
对象地址为空,则对象一定为空
?????????????????????
有钥匙不一定能有房让打开,但没钥匙肯定打不开房门
onlyco 2010-06-08
  • 打赏
  • 举报
回复
应该没问题吧~~~~~~
jackylvm 2010-06-08
  • 打赏
  • 举报
回复
C++中..删除一个指针..如果不对她赋值NULL..那么她也是不空的

但是已经不能再使用她了..除非对她赋值...
ok1411 2010-06-08
  • 打赏
  • 举报
回复
对象存在时当然有地址,我是想确认下这种判断会不会有问题,就是说对象为nil时有没有可能@对象不为nil
是不是
if CallProc <> nil then 或者 if Assigned(CallProc) then
CallProc();
会更好?
dinoalex 2010-06-08
  • 打赏
  • 举报
回复
地址是有的,不然程序怎么管理对象

16,746

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧