Изменения процедуры свойств для пользователей Visual Basic 6.0
Обновлен: Ноябрь 2007
В Visual Basic 2008 обновлено объявление процедур свойств и аргументов для упрощения и совместимости с другими языками программирования.
Visual Basic 6.0
В Visual Basic 6.0 для возврата и задания значений свойств используются операторы Property Get, Property Let и Property Set.
Можно объявить, что параметр свойств будет ByRef. Передача переменной такому параметру разрешает процедуре изменять эту переменную в вызывающем коде.
Visual Basic 2008
Visual Basic 2008 вводит синтаксис объявления унифицированного свойства, который включает в себя процедуры для возвращения и задания значения свойства. Это обеспечивает согласованность таких атрибутов свойств, как уровень доступа и перегрузка. В следующем примере показано объявление свойства, которое не принимает параметры.
Private monthNum As Integer = 1
Property month() As Integer
Get
Return monthNum
End Get
Set(ByVal Value As Integer)
If Value < 1 Or Value > 12 Then
' Error processing for invalid value.
Else
monthNum = Value
End If
End Set
End Property
Для параметра Set можно использовать любое имя. Если не предоставить аргумент, автоматически генерируется Value.
Это изменение синтаксиса делает ненужными операторы Property Get и Property Set, и они не поддерживаются. Поскольку в Visual Basic 2008 свойства по умолчанию обязательно имеют параметры, нет необходимости использовать Property Let и Property Set, чтобы определить, что должно быть присвоено — ссылка на объект или свойство по умолчанию. Поэтому оператор Property Let также не поддерживается.
Visual Basic 2008 не поддерживает параметры свойства ByRef. Если процедура свойства имеет параметр ByRef и измененную переменную, выделяющую соответствующий аргумент, поведение свойства может оказаться непредсказуемым. Поэтому все объявления параметризованных свойств должны указывать ByVal для параметров.
См. также
Основные понятия
Изменения свойств по умолчанию для пользователей Visual Basic 6.0
Сводка изменений поддержки элементов программирования