关于Delphi单元中变量的不同范围/可见性的问题

时间:2014-08-17 22:35:57

标签: delphi

假设我有德尔福单位:

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)



  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  nummer:Integer;

我知道有一个公共接口部分和一个私有实现部分。

公共部分中定义的功能和程序可以从ohter单位使用。

私有部分中定义的函数和过程只能在此单元中使用。

但是接口部分全局变量中var之后的变量是什么?如果是,那么公开的全局变量是否存在差异? 实现后定义的变量与私有变量之间的差异是什么?

1 个答案:

答案 0 :(得分:2)

  • 接口部分中var之后的变量将可以在任何“使用”此单元的单元中用作全局变量。
  • 在类外部定义的变量将在类的所有实例之间共享一个值,因此在一个对象调用中更改变量将影响此类类型的所有对象的变量。如果在类定义中定义var,那么每个对象都将拥有自己的变量版本。