代码之家  ›  专栏  ›  技术社区  ›  Roland Bengtsson

不带引用的列表代码

  •  0
  • Roland Bengtsson  · 技术社区  · 14 年前

    我用粗体表示Delphi和d2007。模型相当大,现在我发现模型中有许多方法没有被调用。编译器应该给出一个关于它的提示,但是它是安静的。

    在Delphi中,链接器删除没有任何引用的方法。然后在编译时给出提示。我试图解释在模型中如何大胆地使用方法。

    一个单位businessclasses.pas包含数百个这样的文件:

    {$INCLUDE BusinessClasses_Interface.inc}
    {$INCLUDE Quantity.inc}
    {$INCLUDE Parcel.inc}
    // and so on...
    

    文件businessclasses_interface.inc包含以下内容:

    TParcel = class(TOrderItem)
    public
      procedure WayBillAsXML(var aXMLstring: string);
    end;
    

    然后parcel.inc有实际的方法实现:

    procedure TParcel.WayBillAsXML(var aXMLstring: String);
    

    我认为如果我不调用waybillasxml,那么我应该从编译器得到一个提示,但这并不是很重要。理想情况下,我需要一个未引用的所有代码的列表。有办法吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Andreas Hausladen    14 年前

    编译器不会向您显示提示,因为该方法是公共的,所以其他一些代码可以调用它。同样适用于受保护的方法。另一个(包-)单元可以具有从类派生的类,而此派生类可以调用该方法。
    Delphi链接器不够智能,无法识别整个项目中没有调用该方法。它处理exe/dll文件和bpl文件相同。但只有后者才允许其他代码调用该方法,而它可以删除exe/dll文件的方法。

    推荐文章