2013-08-09 25 views
6

クラスTPersonがあります。各オブジェクトに固有のFSecondNameが知られています。私は(C#で静的フィールドのような)クラスのフィールドを追加するにはどうすればよいデルファイのクラスフィールド(静的フィールド)

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; 

者:TDictionaryキーはSecondNameであり、値がクラスTPersonの対象である(文字列、TPerson)、。

ありがとうございます!

+1

2人で同じ名前を使用することはできません。家族の名前がGUIDに置き換えられた野生の進歩的な社会? –

答えて

8

あなたはクラス変数を宣言することができます。

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

明らかに、クラス変数のためにあなたが好きなタイプを使用することができます。

クラス変数にはグローバルストレージがあります。したがって、変数のインスタンスは1つだけです。 Delphiのクラス変数は、C#静的フィールドと直接的に類似しています。

+0

どのように値を設定しますか?あなたはそのユニットの初期化ブロックでそれを行うことができますか?これが動作するには、 'パブリッククラスのプロシージャSetMyClassVar'が必要ですか? –

+0

初期化ブロックが機能します。クラスコンストラクタと同じです。それを文書で見てください。通常のコンストラクタとは異なります。 –

関連する問題