Visual Basic 6. Руководство разработчика


Свойства модуля класса


Несмотря на то, что свойства класса могут быть реализованы как общедос­тупные переменные, для доступа к ним Visual Basic предоставляет процедуры Property Let и Property Get. Для корректной реализации свойства класса необходимо добавить следующие процедуры:

Private m_IntProperty

Public Property Let IntProperty(newValue As Integer)

m_IntProperty = newValue

End Property

 

Public Property Get IntProperty() Аs Integer

IntProperty = m_IntProperty

End Property

Закрытая переменная m_IntProperty - это локальная копия значения свойства. Каждый раз, когда приложение устанавливает значение этого свойства, автомати­чески вызывается процедура Property Let и новое значение используется в качестве аргумента. Другими словами, строка

IntProperty = 100

вызывает следующую процедуру класса:

Property Let IntProperty(100)

Назначение свойству некоторого значения приводит к вызову процедуры Property Let (имеющую то же имя, что и свойство). Код процедуры может проверить новое значение на допустимость и либо принять его (и присвоить его значение локальной переменной), или отвергнуть. Аналогично, когда приложение запрашивает значение свойства IntProperty, передается значение локальной переменной m_IntProperty.

В процедуру Property Let можно добавить любой необходимый код проверки корректности значения. Например, свойство Age (Возраст) может быть реализовано следующим кодом:

Private m_Age

Public Property Let Age(newValue As Integer)

Select Case newValue

Case < 0: m_Age = 0

Case > 100 : m_Age = 100

Else m Age = newValue

End Select

End Property

 

Public Property Get Age() As Integer

IntProperty = m_Age

End Property

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

Можно также принудительно вызвать ошибку изнутри процедуры Property Let, которая может быть обработана кодом приложения. Например, можно так реали­зовать свойство Age:




Начало  Назад  Вперед



Книжный магазин