我永远不知道在哪里以及为什么我应该使用使用条款的原因是什么。
unit Unit2;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs; // why put on top ?
type
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses System.Math, System.IOUtils, System.WideStrUtils; // why put here ?
procedure TForm2.FormCreate(Sender: TObject);
begin
//
end;
end.
另外,使用单位的首要任务是什么?为什么winapi.windows总是排在第一位,如果不是第一名会发生什么?
答案 0 :(得分:9)
Help告诉我们:
单位在uses子句中出现的顺序决定初始化的顺序,并影响编译器定位标识符的方式。如果两个单元声明了具有相同名称的变量,常量,类型,过程或函数,编译器将使用uses子句中最后列出的单元。
作为第二个原因的示例 - 尝试在Graphics
单位之前放置Windows
并使用TBitmap