Partilhar via


Como criar uma propriedade no Visual Basic

Você inclui uma definição de propriedade entre uma Property instrução e uma End Property instrução. Dentro dessa definição, você define um Get procedimento, um Set procedimento ou ambos. Todo o código da propriedade está dentro destes procedimentos.

O procedimento Get recupera o valor da propriedade e o procedimento Set armazena um valor. Se desejar que a propriedade tenha acesso de leitura e de gravação, terá de definir os dois procedimentos. Para uma propriedade somente leitura, você define somente Get, e para uma propriedade somente gravação, você define somente Set.

Para criar uma propriedade

  1. Fora de qualquer propriedade ou procedimento, use uma Declaração de Propriedade, seguida de uma declaração End Property.

  2. Se a propriedade usa parâmetros, siga a Property palavra-chave com o nome do procedimento e, em seguida, a lista de parâmetros entre parênteses.

  3. Siga os parênteses com uma cláusula As para especificar o tipo de dados do valor da propriedade. Você deve especificar o tipo de dados mesmo que seja uma propriedade de escrita apenas.

  4. Adicionar os procedimentos Get e Set, conforme apropriado. Veja as instruções a seguir.

Para criar um procedimento Get que recupera um valor de propriedade

  1. Entre as Property instruções e End Property, escreva uma instrução Get seguida de uma End Get instrução. Não é necessário definir parâmetros para o Get procedimento.

  2. Coloque as instruções de código para recuperar o valor da propriedade entre Get e End Get. Esse código pode incluir outros cálculos e manipulações de dados, além de gerar e retornar o valor da propriedade.

  3. Use uma Return instrução para retornar o valor da propriedade para o código de chamada.

Você deve escrever um Get procedimento para uma propriedade de leitura-gravação e para uma propriedade de apenas leitura. Você não deve definir um Get procedimento para uma propriedade somente gravação.

Criar um procedimento "set" que inscreva o valor de uma propriedade

  1. Entre as Property instruções e End Property, escreva uma Instrução Set, seguida de uma End Set instrução.

  2. Set Na instrução, opcionalmente, siga a Set palavra-chave com uma lista de parâmetros entre parênteses. Se a lista de parâmetros não estiver presente ou estiver vazia, um parâmetro implícito nomeado Value será definido, cujo tipo é o tipo da própria propriedade. Se a lista de parâmetros não estiver vazia, você poderá usar um nome diferente, se apropriado, mas o parâmetro deverá ter o mesmo tipo de dados que a própria propriedade.

  3. Coloque as instruções de código para armazenar um valor na propriedade entre as declarações Set e End Set. Esse código pode incluir outros cálculos e manipulações de dados, além de validar e armazenar o valor da propriedade.

  4. Use o parâmetro value para aceitar o valor fornecido pelo código de chamada. Você pode armazenar esse valor diretamente em uma instrução de atribuição ou usá-lo em uma expressão para calcular o valor interno a ser armazenado.

Você deve escrever um Set procedimento para uma propriedade de leitura e escrita e para uma propriedade apenas de escrita. Você não deve definir um Set procedimento para uma propriedade somente leitura.

Exemplo

O exemplo a seguir cria uma propriedade de leitura/gravação que 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 os dois nomes constituintes e retorna o nome completo. Quando o código de chamada atribui um novo nome completo, o Set procedimento tenta dividi-lo em dois nomes constituintes. Se não encontrar um espaço disponível, armazena tudo 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 exemplo a seguir mostra chamadas típicas para os procedimentos de propriedade de fullName. A primeira chamada define o valor da propriedade e a segunda chamada o recupera.

fullName = "MyFirstName MyLastName"
MsgBox(fullName)

Ver também