在Delphi中不是Nil快捷方式
时间:2020-03-06 14:52:52 来源:igfitidea点击:
什么delphi函数断言一个对象不是nil?
解决方案
不确定意思,但是Assert(Assigned(MyObject));
很短且易于使用。
如果已分配(MyObject),则
...
就像上面指出的knight_killer一样,我们可以使用Assert()
函数,断言Assigned(obj)
是true
。当然,像在大多数编译语言中一样,除非明确启用了断言,否则不会执行断言(甚至不将其包含在编译器输出中),因此,对于发布模式构建,我们不应依赖断言。
当然,我们可以简单地检查nil
,即Assert(obj <> nil)
。但是,Assigned()
会产生完全相同的编译器输出,并且还有一个额外的好处,即它也可用于指向类方法的指针(实际上是一对指针,一个指向方法,另一个指向类实例)。 ),因此使用Assigned()
是一个很好的习惯。
Assigned(AObject)会告诉我们对象是否为零。
也许值得一提的是,如果使用AObject.Free释放对象,则Assigned仍将返回true。因此,请确保使用FreeAndNil(AObject)释放对象。