Поделиться через


Инструкция 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, можно объявить процедуру 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

См. также