使用条款的差异

wes*_*uan 10 delphi uses-clause

接口块中声明的单元与实现块中声明的单元之间有什么区别?

And*_*and 13

如果该interface部分列在该部分中,则它在接口部分和实现部分都可用.但是,如果它在该implementation部分中列出,则仅在该部分中提供.

一般来说,如果你只需要一些单元来实现一个单元,那么uses在imlementation部分的子句中列出它.这样一来,你的单位界面所依赖的单位就变得清晰了.

如您所知,单位的界面部分是其他单位看到的.它只是您的单位和其他单位之间的"界面".这就像一份合同."这就是我能做的,以及你如何告诉我这样做." 该单元的实现部分完成了接口部分承诺的所有工作.在这里,您只需"实施"该单位; 在这里,您将接口部分中列出的类/函数的代码.实施部分的内容与其他单位无关.

通过这种方式,您可以将(巨大的)项目划分为小部分,并且很容易看出它们如何一起工作,作为一个系统.

  • 另外:单元不能在接口部分相互链接.如果UnitB在其接口中也使用UnitA,则UnitA不能在其接口部分使用UnitB.我实际上更喜欢仅在接口部分中使用以防止循环引用.编译器不会允许它,我确信我没有得到奇怪的依赖. (6认同)