Instrução set (Visual Basic)
Declara um procedimento de Set
propriedade usado para atribuir um valor a uma propriedade.
Sintaxe
[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]
[ statements ]
End Set
Partes
attributelist
Opcional. Consulte Lista de Atributos.
accessmodifier
Opcional em, no máximo, uma das Get
e Set
declarações nesta propriedade. Pode ser um dos seguintes:
Consulte Níveis de acesso no Visual Basic.
value
Opcional. Parâmetro que contém o novo valor para a propriedade. Se não for fornecido (isto é, se a lista de parâmetros não estiver presente ou estiver vazia), um parâmetro implícito nomeado value
é definido. O tipo de dados deste parâmetro implícito é o tipo de dados da propriedade onde esta Set
instrução é declarada.
datatype
Obrigatório se value
estiver presente e Option Strict
for On
. Não pode estar presente se value
não for dado. Tipo de dados do value
parâmetro. O tipo de dados especificado deve ser o mesmo que o tipo de dados da propriedade onde esta Set
instrução é declarada.
statements
Opcional. Uma ou mais instruções que são executadas quando o procedimento de Set
propriedade é chamado.
End Set
Obrigatório. Encerra a definição do procedimento de Set
propriedade.
Observações
Cada propriedade deve ter um procedimento de Set
propriedade, a menos que a propriedade esteja marcada ReadOnly
. O Set
procedimento é usado para definir o valor da propriedade.
O Visual Basic chama automaticamente o procedimento de Set
uma propriedade quando uma instrução de atribuição fornece um valor a ser armazenado na propriedade.
Visual Basic passa um parâmetro para o Set
procedimento durante atribuições de propriedade. Se você não fornecer um parâmetro para Set
o , o ambiente de desenvolvimento integrado (IDE) usará um parâmetro implícito chamado value
. O parâmetro contém o valor a ser atribuído à propriedade. Normalmente, você armazena esse valor em uma variável local privada e o retorna sempre que o Get
procedimento é chamado.
O corpo da declaração de propriedade pode conter apenas os bens Get
e Set
procedimentos entre a Declaração de Propriedade e a End Property
declaração. Não pode armazenar nada além desses procedimentos. Em particular, ele não pode armazenar o valor atual da propriedade. Você deve armazenar esse valor fora da propriedade, porque se você armazená-lo dentro de qualquer um dos procedimentos de propriedade, o outro procedimento de propriedade não poderá acessá-lo. A abordagem usual é armazenar o valor em uma variável Private declarada no mesmo nível da propriedade. Você deve definir um Set
procedimento dentro da propriedade à qual ele se aplica.
O Set
padrão do procedimento é o nível de acesso de sua propriedade de contenção, a menos que você use accessmodifier
na Set
instrução.
Regras
Níveis de acesso mistos. Se você estiver definindo uma propriedade de leitura-gravação, poderá opcionalmente especificar um nível de acesso diferente para o procedimento ou para o
Get
Set
procedimento, mas não para ambos. Se você fizer isso, o nível de acesso do procedimento deve ser mais restritivo do que o nível de acesso da propriedade. Por exemplo, se a propriedade for declaradaFriend
, você pode declarar oSet
procedimentoPrivate
, mas nãoPublic
.Se você estiver definindo uma
WriteOnly
propriedade, o procedimento representaráSet
a propriedade inteira. Não é possível declarar um nível de acesso diferente paraSet
o , porque isso definiria dois níveis de acesso para a propriedade.
Comportamento
Devolução de um Procedimento de Propriedade. Quando o
Set
procedimento retorna ao código de chamada, a execução continua seguindo a instrução que forneceu o valor a ser armazenado.Set
Os procedimentos de propriedade podem retornar usando a Declaração de Retorno ou a Declaração de Saída.As
Exit Property
declarações eReturn
causam uma saída imediata de um procedimento de propriedade. Qualquer número deExit Property
eReturn
instruções pode aparecer em qualquer lugar no procedimento, e você pode misturarExit Property
eReturn
declarações.
Exemplo
O exemplo a seguir usa a Set
instrução para definir o valor de uma propriedade.
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