Методы доступа

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

inline-accessor-declarations:

inline-get-accessor-declaration   inline-set-accessor-declarationopt

inline-set-accessor-declaration   inline-get-accessor-declarationopt

inline-get-accessor-declaration:

attributesopt   Get   method-localsopt   Begin   block   End Get

inline-set-accessor-declaration:

attributesopt   Set   method-localsopt   Begin   block   End Set

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

Метод чтения значения свойства соответствует методу, который возвращает значения типа, соответствующего типу свойства. Набор параметров этого метода соответствует набору параметров свойства.

Метод установки (записи) значения свойства соответствует методу, который не имеет возвращаемого значения. Список параметров данного метода определяется объединением списка параметров свойства и дополнительного параметра, передаваемого по значению, с типом, совпадающим с типом поля. Данный параметр называется Value и определяется неявно. Является ошибкой компиляции использование имени Value в качестве имени параметра свойства, либо имени локальной переменной определенной в его методе записи.

Компилятор автоматически генерирует методы чтения и записи, резервируя для них определенные имена.

В зависимости от наличия определений методов чтения/записи в определении свойства оно классифицируется следующим образом:

Пример

Class TestProperty
    i: integer;
    //Свойство, доступное для чтения и записи
    Public Property Prop1: integer
        Get
        Begin
            Return i;
        End Get
        Set
        Begin
            i := Value;
        End Set
    End Property;
    //Свойство, доступное только для чтения
    Public Property Prop2: integer
        Get
        Begin
            Return 1
        End Get
    End Property;
    //Свойство, доступное только для записи
    Public Property Prop3: integer
        Set
        Begin
            i := Value;
        End Set
    End Property;

End Class;

См.также:

Свойства