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