Partilhar via


Declaração Set (Visual Basic)

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

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

Partes

  • attributelist
    Opcional.Veja Lista de Atributos.

  • accessmodifier
    Opcional, em no máximo uma, das declarações Get e Set nessa propriedade.Pode ser um dos seguintes:

    SeeNíveis de acesso em Visual Basic.

  • value
    Obrigatório.Parâmetro contendo o novo valor para a propriedade.

  • datatype
    Necessário se Option Strict estiver On.Tipo de dado do parâmetro valueO tipo de dado especificado deve ser o mesmo do tipo de dado da propriedade onde essa declaração Set for declarada.

  • statements
    Opcional.Uma ou mais declarações que executam quando o procedimento de propriedade Set for chamado.

  • End Set
    Obrigatório.Finaliza a definição do procedimento de propriedade Set.

Comentários

Cada propriedade deve ter uma procedimento de propriedade Set a não ser que a propriedade seja marcada como ReadOnly.O procedimento Set é usado para determinar o valor da propriedade.

Visual Basic chama automaticamente um procedimento Set de propriedade quando uma declaração de atribuição fornece um valor para ser armazenado na propriedade.

Visual Basic passa um parâmetro para o procedimento Set durante atribuições de propriedade.Se não for fornecido um parâmetro para Set, o ambiente de desenvolvimento integrado (IDE) usa uma parâmetro implícito de nome value.O parâmetro armazena o valor a ser atribuído à propriedade.Você, normalmente, armazena esse valor em uma variável local privada e o retorna quando o procedimento Get for chamado.

O corpo da declaração de propriedade pode conter somente os procedimentos Get e Set de propriedade entre Propriedade declaração e a declaração End Property.Não é possível armazenar nada além desses procedimentos.Em particular, não é possível armazenar o valor atual da propriedade.Você deve armazenar esse valor fora da propriedade, pois se armazenar no interior de 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 (Visual Basic) declarada no mesmo nível da propriedade.Você deve definir um procedimento Set no interior da propriedade para o qual se aplica.

O procedimento Set tem como padrão o nível de acesso da propriedade que o contém, a não ser que você usa accessmodifier na declaração Set.

Regras

  • **Níveis de Acesso Mistos.**Se você estiver definindo uma propriedade de leitura e escrita, você pode, opcionalmente, especificar um nível de acesso diferente para o procedimento Get ou Set, mas não para ambos.Se isso for feito, o nível de acesso do procedimento deve ser mais restritivo que o nível de acesso da propriedade.Por exemplo, se a propriedade for declarada como Friend, você pode declarar o procedimento Set como Private, mas não como Public.

    Se você estiver definindo uma propriedade WriteOnly, o procedimento Set representa a propriedade completa.Você não pode declarar um nível de acesso diferente para Set, pois isso configuraria dois níveis de acesso para a propriedade.

Comportamento

  • **Retornando a partir de um Procedimento de Propriedade.**Quando o procedimento Set retorna para o código de chamada, a execução continua seguindo a declaração que forneceu o valor a ser armazenado.

    Os procedimentos de propriedade Set podem retornar utilizando-se Instrução Return (Visual Basic) ou Declaração Saída (Visual Basic).

    As declarações Exit Property e Return causam uma saída imediata do procedimento de propriedade.Qualquer número de declarações Exit Property e Return pode aparecer em qualquer lugar no procedimento, e você pode misturar declarações Exit Property e Return.

Exemplo

O exemplo a seguir usa a declaração Set para configurar 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

Tarefas

Como: Adicionar campos e propriedades a uma classe

Referência

Declaração Get

Propriedade declaração

Sub-rotina demonstrativo (Visual Basic)