Delphi中的类字段(静态字段)

7

有一个类TPerson。已知FSecondName对于每个对象都是唯一的。

type
  TPerson = class(TObject)
  private
    FAge:        Integer;
    FFirstName:  String;
    FSecondName: String;
  public
    property Age:        Integer read FAge;
    property FirstName:  String  read FFirstName;
    property SecondName: String  read FSecondName;
    constructor Create;
  end;

我应该如何添加一个类字段(类似于C#中的静态字段)Persons:TDictionary(String,TPerson),其中键是SecondName,值是类TPerson的对象。

谢谢!


2
没有两个人会有相同的姓氏?一个野性、进步的社会,用GUID取代了姓氏? - J...
1个回答

12

您可以声明一个类变量:

type 
  TMyClass = class
  private
    class var
      FMyClassVar: Integer;
   end;

显然,您可以使用任何类型作为类变量。

类变量具有全局存储。因此变量只有一个实例。Delphi类变量直接对应于C#静态字段。


你如何设置值?你能在该单元的初始化块中做到吗?你需要一个 public class procedure SetMyClassVar 来使其工作吗? - Claude Martin
初始化块有效。类构造函数也是如此。在文档中查找。与普通构造函数不同。 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接