Инструкция Set (Visual Basic)
Объявляет свойство Set, которое используется для присваивания свойству значения.
[ <attributelist> ] [ accessmodifier ] Set (ByVal value [ As datatype ])
[ statements ]
End Set
Части
attributelist
Необязательный.См. Список атрибутов.accessmodifier
Необязателен максимум для одного из операторов Get и Set в этом свойстве.Может принимать следующие значения:Protected Friend
Дополнительные сведения см. в разделе Уровни доступа в Visual Basic.
value
Обязательный.Параметр, содержащий новое значение свойства.datatype
Требуется, если для Option Strict установлено значение On.Тип данных параметра value.Указанный тип данных должен совпадать с типом данных свойства, для которого объявляется данный оператор Set.statements
Необязательный.Один или несколько операторов, которые выполняются при вызове процедуры свойства Set.End Set
Обязательный.Завершает определение процедуры свойства Set.
Заметки
Каждое свойство должно иметь процедуру свойства Set, если только свойство не помечено как ReadOnly.Процедура Set используется для присвоения значения свойства.
Visual Basic автоматически вызывает процедуру свойства Set, когда оператор присваивания предоставляет значение, хранимое в свойстве.
Visual Basic передает параметр в процедуру Set во время назначения свойств.Если параметры для блока Set не предоставляются пользователем, интегрированная среда разработки (IDE) использует неявный параметр с именем value.Параметр содержит значение, присваиваемое свойству.Обычно это значение хранится в закрытой локальной переменной и возвращается при каждом вызове процедуры Get.
Основная часть объявления свойства может содержать только процедуры Get и Set свойства между оператором Оператор Property и End Property.Оно не может хранить что-либо кроме этих процедур.В частности, оно не может хранить текущее значение свойства.Это значение следует хранить за пределами свойства, так как если хранить его внутри любой из процедур свойства, другая процедура свойства не сможет получить к нему доступ.Обычным подходом является хранение значения в переменной Private (Visual Basic), объявленной на том же уровне, что и свойство.Процедуру Set необходимо определить внутри свойства, к которому оно применимо.
Процедура Set имеет уровень доступа к свойству, в котором содержится, по умолчанию, если не используется инструкция accessmodifier в операторе Set.
Правила
Смешанные уровни доступа. При определении свойства для чтения и записи можно указать другой уровень доступа для процедур Get или Set, но не для обеих.При этом уровень доступа процедуры должен быть более строгими, чем уровень доступа свойства.Например, если свойство объявлено Friend, можно объявить процедуру Set как Private, но не Public.
При определении свойства WriteOnly, процедура Set представляет все свойство.Нельзя объявлять другой уровень доступа для Set, поскольку таким образом устанавливается два уровня доступа для свойства.
Поведение
Возвращение из процедуры свойства. Когда процедураSet возвращается к коду вызова, выполнение продолжается после инструкции, которая предоставляет значение для хранения.
Процедуры свойства Set могут возвращаться с помощью либо Оператор Return (Visual Basic), либо Оператор Exit (Visual Basic).
Операторы Exit Property и Return вызывают немедленный выход из процедуры свойства.Любое количество операторов Exit Property и Return может использоваться в любом месте процедуры, и их также можно использовать вместе с операторами Exit Property и Return.
Пример
В следующем примере используется инструкция 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