在使用条款中使用完全合格的命名空间是否有好处?

Mic*_*nny 7 delphi namespaces

在uses子句中完全限定名称空间是否更好?例如,这些声明中的一个比另一个好吗?

uses
  ShellApi,
  Windows,
  SHFolder,
  SysUtils;

uses
  Winapi.ShellApi,
  Winapi.Windows,
  Winapi.SHFolder,
  System.SysUtils;

Run Code Online (Sandbox Code Playgroud)

Jer*_*dge 8

这真的取决于你正在建设什么.如果它是Delphi最为人所知的简单VCL应用程序,那么您通常不需要担心它.但是,如果您正在使用组件构建程序包,则需要确保明确定义要使用的环境:VCL或FMX.Embarcadero添加了名称空间前缀,以便能够区分不同的可能解决方案.

但是,在大多数情况下,.仅作为视觉表示.它可以帮助您(编码人员)识别您正在使用的库.

以其他问题为例.如果没有在项目选项中添加名称空间前缀或名称空间,Delphi IDE/Compiler将不接受一个非常常见的单元.标准Graphics单位需要明确定义为Vcl.Graphics,而不是FMX.Graphics.

另一方面,使用完整命名空间对于许多来自严格执行的其他语言的编码人员来说很舒服,不仅如此,还可以让您一目了然地看到所有内容的本质,而无需查看其他地方有关您实际使用的内容的更多信息.

编辑

另外,我刚刚看到使用完全限定的命名空间也有助于加快编译时间,因为编译器不必尝试解析所有命名空间.