2013-08-09 8 views
6

Существует класс TPerson. Известно, что FSecondName уникально для каждого объекта.Поле класса (статическое поле) в Delphi

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#) Персоналии: TDictionary (String, TPerson), где ключ SecondName и значение является объектом класса TPerson.

Спасибо!

+1

У двух человек не будет такого же имени? Дикое, прогрессивное общество, где фамилии заменяются GUID? –

ответ

8

Вы можете объявить переменную класса:

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

Очевидно, что вы можете использовать любой тип вы хотите для переменной класса.

Переменные класса имеют глобальное хранилище. Таким образом, существует один экземпляр переменной. Переменная класса Delphi непосредственно аналогична статическому полю C#.

+0

Как вы устанавливаете значение? Можете ли вы сделать это в блоке инициализации этого устройства? Вам нужна 'public class procedure SetMyClassVar' для этого? –

+0

Блок инициализации работает. Как и конструктор класса. Посмотрите, что в документах. В отличие от обычного конструктора. –

Смежные вопросы