【问题标题】:Not Nil shortcut in DelphiDelphi 中的 Not Nil 快捷方式
【发布时间】:2010-03-17 21:06:10
【问题描述】:

什么 delphi 函数断言一个对象不是 nil?

【问题讨论】:

    标签: delphi


    【解决方案1】:

    就像上面指出的 knight_killer 一样,您使用 Assert() 函数,断言 Assigned(obj)true。当然,与大多数编译语言一样,断言不会执行(甚至包含在编译器输出中),除非您专门启用了它们,因此您不应依赖断言进行发布模式构建。

    当然,您可以简单地检查nil,例如Assert(obj <> nil)。然而,Assigned() 产生完全相同的编译器输出,并具有额外的好处,它也适用于指向类方法的指针(实际上是一对指针,一个指向方法,另一个指向类实例),所以使用Assigned()是一个很好的习惯。

    【讨论】:

    • 实际上,在 Delphi 中,断言是默认开启的,必须特别禁用。
    【解决方案2】:

    不确定您的意思,但Assert(Assigned(MyObject)); 非常简短且易于使用。

    【讨论】:

      【解决方案3】:

      Assigned(AObject) 会告诉你一个对象是否为 nil。

      也许值得一提的是,如果你使用 AObject.Free 释放一个对象,Assigned 仍然会返回 true。因此,请确保使用 FreeAndNil(AObject) 释放对象。

      【讨论】:

        【解决方案4】:

        如果已分配(MyObject)则 ...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-13
          • 2021-07-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-15
          相关资源
          最近更新 更多