Оператор Property Get

Объявляет имя, аргументы и код, формирующий текст процедурыProperty, которая получает значение свойства.

Синтаксис

[ Общедоступная | Частная | Друг ] [ Static ] Свойство Getname [ (arglist) ] [ Astype ]
[ операторы ]
[ name=expression ]
[ Exit Property ]
[ операторы ]
[ name=expression ]
End Property

Синтаксис оператора Property Get состоит из следующих частей:

Part Описание
Public Необязательный параметр. Показывает, что процедура Property Get доступна всем другим процедурам во всех модулях. При использовании процедуры в модуле, содержащем оператор Option Private, доступ к ней открыт только в проекте.
Private Необязательный параметр. Показывает, что процедура Property Get доступна только другим процедурам из модуля, в котором она объявлена.
Friend Необязательный параметр. Используется только в модуле класса. Показывает, что процедура Property Get видима по всему проекту, кроме контроллера экземпляра объекта.
Static Необязательный параметр. Указывает, что локальные переменные процедуры Property Get сохраняются между вызовами. Атрибут Static не влияет на переменные, объявленные вне процедуры Property Get, даже если они используются в процедуре.
name Обязательно. Имя процедуры Property Get ; соответствует стандартным соглашениям об именовании переменных, за исключением того, что имя может совпадать с процедурой Property Let или Property Set в том же модуле.
arglist Необязательный параметр. Список переменных, представляющих аргументы, передаваемые в процедуру Property Get при ее вызове. Несколько аргументов разделяются запятыми. Имя и тип данных каждого аргументы процедуры Property Get должно быть таким же, как и у соответствующего аргумента процедуры Property Let (если она существует).
type Необязательный параметр. Тип данных значения, возвращаемого процедурой Property Get ; Могут быть byte, boolean, Integer, Long, Currency, Single, Double, Decimal (в настоящее время не поддерживается), Date, String (кроме фиксированной длины), Object, Variant, определяемый пользователем тип и Массивы.

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

Аргумент список_аргументов имеет следующий синтаксис и элементы:

[ Необязательно ] [ ByVal | ByRef ] [ ParamArray ] varname [ ( ) ] [ Astype ] [ =defaultvalue ]

Part Описание
Необязательное Необязательный параметр. Указывает, что аргумент не является обязательным. Если используется, все последующие аргументы в списке ресурсов также должны быть необязательными и объявляться с помощью ключевого слова Optional .
ByVal Необязательный параметр. Указывает, что аргумент передается значением.
ByRef Необязательный параметр. Указывает, что аргумент передается по ссылке. ByRef является значением по умолчанию в Visual Basic.
ParamArray Необязательный параметр. Используется как последний аргумент в arglist, чтобы указать, что последний аргумент является массивом Optional элементов Variant. Ключевое слово ParamArray позволяет предоставлять произвольное число аргументов. Не может использоваться с аргументами ByVal, ByRef или Optional.
варнаме Обязательно. Имя переменной, представляющее аргумент; соответствует стандарту соглашений об именовании переменных.
type Необязательный параметр. Тип аргумента, передаваемого процедуре; может принимать значения Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (на данный момент не поддерживается), Date, String (только строки переменной длины), Object, Variant или определенного объектного типа. Если параметр объявлен без ключевого слова Optional, можно также указать тип, определяемый пользователем.
Defaultvalue Необязательный параметр. Любая константа или константное выражение. Действительно только для параметров Optional. Если тип — Object, явным значением по умолчанию может быть только Nothing.

Замечания

Если явно не указано с помощью public, private или Friend, процедуры property по умолчанию являются общедоступными. Если static не используется, значение локальных переменных не сохраняется между вызовами.

Ключевое слово Friend может использоваться только в модулях классов. Однако доступ к процедурам Friend может осуществляться в любом модуле проекта. Процедура Friend не отображается в библиотеке типов своего родительского класса; процедура Friend не может быть привязана позднее.

Весь выполняемый код должен быть в процедурах. Невозможно определить процедуру Property Get внутри другой процедуры Property, Sub или Function .

Оператор Exit Property приводит к немедленному выходу из процедуры Property Get . Выполнение программы продолжается с оператора, следующего за вызовом процедуры Property Get. В процедуре Property Get можно использовать любое количество операторов Exit Property.

Как и процедуры Sub и Property Let, процедура Property Get является отдельной процедурой, которая может принимать аргументы, выполнять последовательности операторов и менять значения своих аргументов. Однако, в отличие от процедуры Sub или Property Let , можно использовать процедуру Property Get справа от выражения так же, как функция или имя свойства, когда требуется вернуть значение свойства.

Пример

В этом примере оператор Property Get используется для определения процедуры, получающей значение свойства. Свойство определяет текущий цвет пера в виде строки.

Dim CurrentColor As Integer 
Const BLACK = 0, RED = 1, GREEN = 2, BLUE = 3 
 
' Returns the current color of the pen as a string. 
Property Get PenColor() As String 
 Select Case CurrentColor 
 Case RED 
 PenColor = "Red" 
 Case GREEN 
 PenColor = "Green" 
 Case BLUE 
 PenColor = "Blue" 
 End Select 
End Property 
 
' The following code gets the color of the pen 
' calling the Property Get procedure. 
ColorName = PenColor 

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.