我讀的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