Compartilhar via


Procedimentos de Propriedade

Um procedimento de propriedade é uma série de declarações Visual Basic que manipulam uma propriedade personalizada em um módulo, classe ou estrutura.Procedimentos de propriedade são também conhecidos como acessadores de propriedade .

Visual Basic fornece os seguintes procedimento de propriedade:

  • Um procedimentoGet retorna o valor de uma propriedade.Ele é chamado quando você acessa a propriedade em uma expressão.

  • Um procedimento Set define um valor para uma propriedade, incluindo uma referência de objeto.Ele é chamado quando você atribui um valor à propriedade.

Você geralmente define procedimentos de propriedade aos pares, usando as declarações Get e Set , mas você pode também ainda definir um procedimento sozinho se a propriedade é somente leitura (Declaração Get)ou somente escrita (Declaração Set (Visual Basic)) .

Você pode definir propriedades em classes, estruturas e módulos.As propriedades são Public por padrão, o que significa que você pode chamá-las de qualquer lugar no seu aplicativo que possa acessar o recipiente da propriedade.

Para uma comparação entre propriedades e variáveis, consulte Diferenças entre variáveis e propriedades em Visual Basic.

Sintaxe da Declaração

A propriedade em si é definida por um bloco de código entre declarações Propriedade declaração e End Property.Dentro deste bloco, cada procedimento de propriedade aparece como um bloco interno envolto em uma instrução de declaração (Get ou Set)e a declaração End correspondente.

A sintaxe para declarar uma propriedade e seus procedimentos é da seguinte maneira:

[Default] [modifiers] Property propertyname[(parameterlist)] As datatype

[accesslevel] Get

' Statements of the Get procedure.

' The following statement returns expression as the property's value.

Return expression

End Get

[accesslevel] Set[(ByVal newvalue As datatype)]

' Statements of the Set procedure.

' The following statement assigns newvalue as the property's value.

lvalue = newvalue

End Set

End Property

Os modifiers podem especificar o nível de acesso e informações sobre a sobrecarga, substituindo, compartilhando e sombreando, bem como se a propriedade é somente leitura ou somente escrita.O accesslevel no procedimento Get ou Set pode ser qualquer nível que seja mais restritivo do que o nível de acesso especificado para a propriedade em si.Para obter mais informações, consulte Propriedade declaração.

Tipo de dados

Um tipo de dados de propriedade e do nível de acesso principal são definidos na declaraçãoProperty , não nos procedimentos de propriedade.Uma propriedade pode ter apenas um tipo de dados.Por exemplo, você não pode definir uma propriedade para armazenar um valor Decimal mas recuperar um valor Double.

Nível de Acesso

No entanto, você pode definir um nível de acesso principal para a propriedade e restringir o nível de acesso em um dos seus procedimentos de propriedade.Por exemplo, você pode definir uma propriedade Public e, em seguida, definir um procedimentoPrivate Set .O procedimento Get permanece Public.Você pode alterar o nível de acesso em apenas um dos procedimentos de uma propriedade, e você pode apenas fazê-lo mais restritivo do que o nível de acesso principal.Para obter mais informações, consulte Como: Declarar uma propriedade com níveis de acesso misto.

Declaração de parâmetros

Declare cada parâmetro da mesma maneira que faria para Subprocedimentos, exceto pelo fato de que o mecanismo de passagem deve ser ByVal.

A sintaxe para cada parâmetro na lista de parâmetros é como se segue:

[Optional] ByVal [ParamArray] parametername As datatype

Se o parâmetro é opcional, você deve também fornecer um valor padrão como parte de sua declaração.A sintaxe para especificar um valor padrão é como se segue:

Optional ByVal parametername As datatype = defaultvalue

Valor de propriedade

Em um procedimento Get , o valor de retorno é fornecido para a expressão de chamada como o valor da propriedade.

Em um procedimento Set , o novo valor da propriedade é passado para o parâmetro da declaração Set.Se você declarar explicitamente um parâmetro, você deve declará-lo com o mesmo tipo de dados da propriedade.Se você não declarar um parâmetro, o compilador usa o parâmetro implícito Value para representar o novo valor a ser atribuído à propriedade.

Sintaxe de Chamada

Você chama um procedimento de propriedade implicitamente fazendo referência à propriedade.Você usa o nome da propriedade da mesma forma que usaria o nome de uma variável, exceto pelo fato de que você deve fornecer valores para todos os argumentos que são não opcionais, e você deve colocar a lista de argumentos entre parênteses.Se nenhum argumento é fornecido, você pode, opcionalmente, omitir os parênteses.

A sintaxe para chamar impicitamente um procedimento Set é da seguinte maneira:

propertyname[(argumentlist)] = expression

A sintaxe para chamar impicitamente um procedimento Get é da seguinte maneira:

lvalue = propertyname[(argumentlist)]

Do While (propertyname[(argumentlist)] > expression)

Ilustração de Declaração e Chamada

A propriedade a seguir armazena um nome completo como dois nomes constituintes, o primeiro nome e o sobrenome.Quando o código de chamada lê fullName, o procedimento Get combina as duas partes e retorna o nome completo.Quando o código de chamada atribui um novo nome completo, o procedimento Set tenta dividi-lo em duas partes.Se ele não achar um espaço, armazena o nome completo apenas como o primeiro nome.

Dim firstName, lastName As String
Property fullName() As String
    Get
      If lastName = "" Then
          Return firstName
      Else
          Return firstName & " " & lastName
      End If

    End Get
    Set(ByVal Value As String)
        Dim space As Integer = Value.IndexOf(" ")
        If space < 0 Then
            firstName = Value
            lastName = ""
        Else
            firstName = Value.Substring(0, space)
            lastName = Value.Substring(space + 1)
        End If
    End Set
End Property

O seguinte exemplo mostra chamadas típicas para os procedimentos de propriedade do fullName

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Consulte também

Tarefas

Como: Criar uma propriedade

Como: Chamar um procedimento de propriedade

Como: Declarar e telefonar a padrão propriedade in Visual Basic

Como: Colocar um valor em uma propriedade

Como: Obter um valor de uma propriedade

Conceitos

Procedimentos no Visual Basic

Procedimentos de função

Procedimentos de Operador

Parâmetros do procedimento e argumentos

Diferenças entre variáveis e propriedades em Visual Basic