Delphi系列談之:Delphi中的靜態屬性及靜態方法的實現 (轉)

worldblog發表於2007-12-12
Delphi系列談之:Delphi中的靜態屬性及靜態方法的實現 (轉)[@more@]

  在學習時常有些心得,在此寫出來,供大家參考,如有錯誤或不妥之處還望指教.

  使用過c++的人都知道在c++的類中有靜態屬性及靜態方法,為設計帶來很多方便.那麼在Delphi中靜態屬性及靜態方法是怎麼實現的呢?請看下面的例項:

unit Unit2;

interface

type
  TMyClass = Class
  public
  {靜態過程:設定靜態屬性的值}
  class procedure SetStaticMemberValue(AString: string);
  {靜態:讀取靜態屬性的值}
  class function GetStaticMemberValue: string;
  end;

implementation
{在此宣告靜態屬性,這一點與c++有很大的不同}
var
  AStaticMember: string;

class function TMyClass.GetStaticMemberValue: string;
begin
  Result := AStaticMember;
end;

class procedure TMyClass.SetStaticMemberValue(AString: string);
begin
  AStaticMember := AString;
end;

end.

  那麼在TMyClass中宣告的屬性及方法是否是靜態屬性或靜態方法呢?請看下面的例項:

...
uses unit2
...

procedure TForm1.Button2Click(Sender: T);
begin
  {不需宣告TMyClass的例項,可直接設定及讀取靜態屬性的值}
  TMyClass.SetStaticMemberValue('MyClass');
  showmessage(TMyClass.GetStaticMemberValue);
end;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991838/,如需轉載,請註明出處,否則將追究法律責任。

相關文章