Инструкция Set (Visual Basic)
Объявляет процедуру свойства, используемую Set
для назначения значения свойству.
Синтаксис
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
Детали
attributelist
Необязательно. См . список атрибутов.
accessmodifier
Необязательно для одного из Get
операторов и Set
инструкций в этом свойстве. Может применяться один из перечисленных ниже типов.
См. раздел Access levels in Visual Basic.
value
Необязательно. Параметр, содержащий новое значение для свойства. Если не задано (то есть если список параметров отсутствует или пуст), определяется неявный параметр value
. Тип данных этого неявного параметра — это тип данных свойства, в котором объявлена эта Set
инструкция.
datatype
Обязательный, если value
присутствует и Option Strict
имеется On
. Невозможно присутствовать, если value
оно не задано. Тип value
данных параметра. Указанный тип данных должен совпадать с типом данных свойства, в котором объявлена эта Set
инструкция.
statements
Необязательно. Одна или несколько инструкций, выполняемых при вызове Set
процедуры свойства.
End Set
Обязательный. Завершает определение Set
процедуры свойства.
Замечания
Каждое свойство должно иметь процедуру Set
свойства, если свойство не помечается ReadOnly
. Процедура Set
используется для задания значения свойства.
Visual Basic автоматически вызывает процедуру свойства Set
, когда инструкция назначения предоставляет значение, которое должно храниться в свойстве.
Visual Basic передает параметр процедуре Set
во время назначений свойств. Если параметр не указан Set
, интегрированная среда разработки (IDE) использует неявный параметр с именем value
. Параметр содержит значение, назначенное свойству. Обычно это значение хранится в частной локальной переменной и возвращается при каждом вызове Get
процедуры.
Текст объявления свойства может содержать только свойства и Set
процедуры между операторомproperty и операторомEnd Property
.Get
Он не может хранить ничего, кроме этих процедур. В частности, он не может хранить текущее значение свойства. Это значение должно храниться вне свойства, так как если он хранится в любой из процедур свойств, другая процедура свойства не может получить к ней доступ. Обычный подход заключается в хранении значения в частной переменной, объявленной на том же уровне, что и свойство. Необходимо определить процедуру Set
внутри свойства, к которому она применяется.
Процедура Set
по умолчанию используется на уровне доступа его содержащего свойства, если вы не используете accessmodifier
в инструкции Set
.
Правила
Уровни смешанного доступа. Если вы определяете свойство чтения и записи, вы можете при необходимости указать другой уровень доступа для процедуры
Get
илиSet
процедуры, но не оба. Если это сделать, уровень доступа к процедуре должен быть более строгим, чем уровень доступа свойства. Например, если свойство объявленоFriend
, можно объявить процедуруSet
Private
, но неPublic
.Если вы определяете
WriteOnly
свойство,Set
процедура представляет все свойство. Для свойства нельзя объявить другой уровень доступа, так как для этого задано два уровняSet
доступа.
Поведение
Возвращается из процедуры свойства.
Set
Когда процедура возвращается в вызывающий код, выполнение продолжается после инструкции, которая предоставила хранимое значение.Set
Процедуры свойств могут возвращать с помощью инструкции Return или Exit Statement.Return
ИнструкцииExit Property
вызывают немедленный выход из процедуры свойства. Любое количествоExit Property
иReturn
операторы могут отображаться в любом месте процедуры, и вы можете смешивать иReturn
смешиватьExit Property
инструкции.
Пример
В следующем примере оператор используется Set
для задания значения свойства.
Class propClass
Private propVal As Integer
Property Prop1() As Integer
Get
Return propVal
End Get
Set(ByVal value As Integer)
propVal = value
End Set
End Property
End Class