【发布时间】:2009-02-09 14:57:27
【问题描述】:
如果我有一个充满常量的单元,比如...
unit AConsts;
interface
const
Const1 : WideString = 'Const1';
Const2 : WideString = 'Const2';
Const3 : WideString = 'Const3';
Const4 = 100;
Const5 = 100;
implementation
end.
我想从另一个单位使用这个单位,有什么区别...
unit AUnit;
interface
uses
AConsts;
Implementation
end.
和
unit AUnit;
interface
implementation
uses
AConsts;
end.
?
问题不在于范围、避免循环引用等。而是关于已编译应用程序的差异。
如果UnitA、UnitB和UnitC都使用AConsts,那么在编译的应用程序(假设AConsts单元中的常量和其他代码之间没有名称冲突)之间的@ 987654329@ 其中UnitA、UnitB 和 UnitC 在 interface 部分都有AConsts 和App2 其中UnitA、UnitB 和UnitC 都有@ 实施部分中的 987654338@。
【问题讨论】:
-
也许我有点老派,但我认为在界面中你应该只使用你的声明所需的单元,这些单元将在单元外可用,因此在界面中。您应该将所有其余部分付诸实施。 AFAIK,在古代,这有助于编译器速度和生成的 exe 大小,但最近的版本可以更好地处理。但是,它仍然是一种整洁的方式。
标签: delphi