当前位置:  开发笔记 > 编程语言 > 正文

Delphi中的全局变量

如何解决《Delphi中的全局变量》经验,为你挑选了1个好方法。

我有一个用Delphi编写的控制台应用程序.我看到我可以通过将它们分配给单元范围来获得全局变量,但是在控制台应用程序中我不使用单元(从我所理解的仅仅是形式).



1> Toon Krijthe..:

不,单位不等同于表格.

单元是包含程序一部分的模块.每个表单都是一个单独的单元,但单元不必包含表单.

每个单元都有一个接口部分和一个实现部分.接口部分中的声明对使用该单元的所有单元都是可见的:

unit A;

interface

  type
    TMyClass = class
    end;


implementation

end.


unit B;

interface

uses
  A;  // I can now see and use TMyClass.

您可以通过在单元中声明全局变量来声明它们:

unit A;

interface

  var
    GVar1 : Integer;

implementation

  var 
    GVar2 : Integer;

end.

GVar1是可见的,可以使用单元A由所有单元修改.GVar2只能通过单元A的代码进行修改,因为它在实现部分中定义.

我强烈反对在接口部分使用全局变量,因为你无法控制它们(因为任何人都可以改变它们).如果您确实需要全局,则最好在实现部分中定义它并提供访问功能.

顺便说一句,您可以将单元视为一种类(具有单个实例).它甚至有一种构建和破坏的方法:

unit A;

interface

  type
    TMyClass = class
    end;


implementation

initialization
  // Initialize the unit
finalization
  // Free resources etc. You can olny have a finalization if you have an initialization.
end.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有