Partilhar via


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 Seto , 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 GetSet 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 declarada Friend, você pode declarar o Set procedimento Private, mas não Public.

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

Consulte também