我读的RAD Studio文件建立在Delphi XE。 这里有一些文字。德尔福XE多单元命名空间的问题
[Delphi的参考 - >的Delphi语言指南 - >程序和单位 - >使用命名空间 - >搜索命名空间 - >多单元命名空间]
多单元命名空间
多个单元可以属于相同的名称空间,如果单元声明引用相同的名称空间。 例如,可以创建两个文件,unit1.pas和unit2.pas,具有下列单位声明:
// in file 'unit1.pas'
unit MyCompany.ProjectX.ProgramY.Unit1
// in file 'unit2.pas'
unit MyCompany.ProjectX.ProgramY.Unit2
在这个例子中,命名空间MyCompany.ProjectX.ProgramY逻辑上包含所有的来自unit1.pas和unit2.pas的接口符号。
在命名空间中的符号名称必须是唯一的,整个命名空间中的所有单位。
在上面的例子中,它是1单元和UNIT2错误两者定义名为mySymbol
一个全局接口符号我测试此。下面的代码为 。
-----------------------------------------------------------------
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Lib.A in 'Lib.A.pas',
Lib.B in 'Lib.B.pas';
begin
WriteLn (TestValue) ;
ReadLn ;
end.
-----------------------------------------------------------------
unit Lib.A;
interface
const TestValue : Integer = 10 ;
implementation
end.
-----------------------------------------------------------------
unit Lib.B;
interface
const TestValue : Integer = 10 ;
implementation
end.
这不是错误。为什么?我不明白。
如果* only *'在Project1中使用SysUtils,Lib'并在'Lib.B'中执行'TestValue:Integer = 20',然后在'Project1'中执行'WriteLn(TestValue)',会发生什么? – 2011-05-15 15:29:27
我想CodeGear的对延伸的从未被实施了德尔福的命名空间为Win32的净概念,一些不正规的计划。 Delphi中没有多单元命名空间,很难说上面的文档是关于什么的。 – kludg 2011-05-15 17:11:34