江山信息网
美食
当前位置:首页 > 美食

Delphi中实现C++-Java类似静态变量的功能

发布时间:2019-09-13 20:33:21 编辑:笔名

在网上看到很多人都在为Delphi是否支持C++/Java中的静态变量及静态方法的功能而困扰,其实这在Delphi中是很简单的.

静态方法就是使用Class Function. 静态变量则使用单元局部变量来实现. 代码如下:

//=========================================// StaticVarTestU - 定义了可以计数的类,通过类方法即可访问此类的对象数//=========================================unit StaticVarTestU;interfacetype TStaticVarClass = class public //constructor constructor Create(); destructor Destroy; override; //类方法,取得对象的计数 class function ObjectCount: integer; protected private end;implementationVar LObjCount: integer;{ TStaticVarClass }constructor TStaticVarClass.Create;begin inc(LObjCount); //使用局部变量end;destructor TStaticVarClass.Destroy;begin dec(LObjCount); //使用局部变量 inherited;end;class function TStaticVarClass.ObjectCount: integer;begin Result := LObjCount; //返回局部变量end;initialization LObjCount := 0; //初始化finalization LObjCount := 0;end.//=========================================// StaticTest - 测试代码,创建10个对象,并访问其计数,再Free掉.//=========================================program StaticTest;{$APPTYPE CONSOLE}uses SysUtils, Classes, StaticVarTestU in "StaticVarTestU.pas";procedure printObjCount;begin WriteLn(Format("The Object Count now is %d", [TStaticVarClass.ObjectCount]));end;var i: integer; mObjList: TList;begin { TODO -oUser -cConsole Main : Insert code here } mObjList := TList.Create; printObjCount; for i := 0 to 10 do begin mObjList.Add(TStaticVarClass.Create()); printObjCount; end; for i := 0 to mObjList.Count -1 do begin TStaticVarClass(mObjList.Items[i]).Free; printObjCount; end; mObjList.Free; readln;

孩孑发烧最快的降温方法
初期脑梗塞如何治疗
血栓要怎么治疗
儿童健脾胃的药有哪些