published 프로퍼티

published 프로퍼티

{$M+} 상태로 컴파일된 클래스(예: classes 유닛의 TPersistent)는 published 섹션을 가질 수 있어요.

출처: Published properties

본문

published 섹션의 메서드, 필드, 프로퍼티에 대해 컴파일러는 RTTI(Run Time Type Information, 실행 시점 타입 정보)를 생성해요. 이 정보로 published 섹션에 정의된 메서드·필드·프로퍼티를 조회할 수 있어요. typinfo 유닛에 이 정보를 조회하는 데 필요한 루틴이 있고, FPC의 classes 유닛에 있는 스트리밍 시스템에서 이 유닛을 사용해요.

RTTI는 read/write 지정자가 무엇이든 생성돼요. 필드든, 함수/프로시저든, 인덱스 함수/프로시저든 상관없어요.

published로 선언할 수 있는 필드는 클래스 타입 필드뿐이에요. 프로퍼티의 경우, 크기가 포인터 이하인 단순 프로퍼티는 published로 선언할 수 있어요. float, 정수, 32개 미만의 서로 다른 원소를 가진 집합, 열거형, 클래스, 동적 배열(배열 프로퍼티는 제외)이 여기 해당해요.

다른 타입에 대한 실행 시점 타입 정보가 존재하긴 하지만, 그 타입들은 published 섹션의 프로퍼티나 필드 정의에 사용할 수 없어요. 그 정보는 예를 들어 프로시저나 함수의 인자를 설명하는 데만 존재해요.

더 알아보기

  • 프로퍼티 정의(Definition)
  • 저장 정보(Storage information)