Partilhar via


Como: Criar uma propriedade (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 Get procedimento recupera o valor da propriedade e armazena Set um valor. Se desejar que a propriedade tenha acesso de leitura/gravação, você deverá definir ambos os 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 End Property declaração.

  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 As cláusula para especificar o tipo de dados do valor da propriedade. Você deve especificar o tipo de dados mesmo para uma propriedade somente gravação.

  4. Adicionar Get e Set procedimentos, 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 declaração Get, seguida de uma End Get declaraçã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 as Get instruções and 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 somente leitura. Você não deve definir um Get procedimento para uma propriedade somente gravação.

Para criar um procedimento set que grava 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 Set instruções and 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-gravação e para uma propriedade somente gravação. 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 é lido, o Get procedimento combina os dois nomes constituintes fullNamee 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, 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)

Consulte também