Compartilhar via


Instrução Set (Visual Basic)

Declara um Set procedimento de propriedade usado para atribuir um valor a uma propriedade.

Sintaxe

[ <attributelist> ] [ accessmodifier ] Set [([ByVal value [ As datatype ]])]  
    [ statements ]  
End Set  

Partes

attributelist
Opcional. Consulte a Lista de Atributos.

accessmodifier
Opcional em no máximo uma das Get instruções e Set nesta propriedade. Pode ser um dos seguintes:

Consulte os níveis de acesso no Visual Basic.

value
Opcional. Parâmetro que contém o novo valor da propriedade. Se não for dado (ou seja, se a lista de parâmetros não estiver presente ou estiver vazia), um parâmetro implícito nomeado value será definido. O tipo de dados desse parâmetro implícito é o tipo de dados da propriedade em que essa 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 em que essa 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 Set procedimento de propriedade.

Observações

Cada propriedade deve ter um Set procedimento de 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.

O Visual Basic passa um parâmetro para o Set procedimento durante as atribuições de propriedade. Se você não fornecer um parâmetro, Seto IDE (ambiente de desenvolvimento integrado) 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 a propriedade Get e Set os procedimentos entre a Instrução property e a instrução End Property . Ele 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, pois 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 privada declarada no mesmo nível da propriedade. Você deve definir um Set procedimento dentro da propriedade à qual ele se aplica.

O Set procedimento usa como padrão o nível de acesso de sua propriedade que contém, a menos que você use accessmodifier na instrução Set .

Regras

  • Níveis de acesso mistos. Se você estiver definindo uma propriedade de leitura/gravação, opcionalmente poderá especificar um nível de acesso diferente para o GetSet procedimento ou o procedimento, mas não ambos. Se você fizer isso, o nível de acesso do procedimento deverá ser mais restritivo do que o nível de acesso da propriedade. Por exemplo, se a propriedade for declarada Friend, você poderá declarar o Set procedimento Private, mas não Public.

    Se você estiver definindo uma WriteOnly propriedade, o Set procedimento representará toda a propriedade. Você não pode declarar um nível de acesso diferente para Set, porque isso definiria dois níveis de acesso para a propriedade.

Comportamento

  • Retornando 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 ser retornados usando a Instrução Return ou a Instrução Exit.

    As Exit Property instruções e as Return instruções causam uma saída imediata de um procedimento de propriedade. Qualquer número de Exit Property instruções e instruções Return podem aparecer em qualquer lugar no procedimento e você pode misturar Exit Property e Return instruçõ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

Consulte também