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).

감사합니다.

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

은 분명히 당신이 클래스 변수에 원하는대로 유형 사용할 수 있습니다

+1

두 명의 사람들이 동일한 두 번째 이름을 가질 수 있습니까? 가명이 GUID로 대체되는 야생의 진보적 인 사회? –

답변

8

당신은 클래스 변수를 선언 할 수 있습니다.

클래스 변수에는 전역 저장소가 있습니다. 따라서 변수의 단일 인스턴스가 있습니다. Delphi 클래스 변수는 C# 정적 필드와 직접적으로 유사합니다.

+0

어떻게 값을 설정합니까? 그 유닛의 초기화 블럭에서 할 수 있습니까? 이 함수가 작동하려면'SetMyClassVar' public class procedure가 필요합니까? –

+0

초기화 블록이 작동합니다. 클래스 생성자는 마찬가지입니다. 문서에서 그걸보세요. 일반 생성자와 다릅니다. –