Como criar uma propriedade (Visual Basic)

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

O Get procedimento recupera o valor da propriedade e o Set procedimento armazena um valor. Se você quiser que a propriedade tenha acesso de leitura/gravação, defina ambos os procedimentos. Para uma propriedade somente leitura, você define apenas Gete, para uma propriedade somente gravação, você define apenas Set.

Para criar uma propriedade

  1. Fora de qualquer propriedade ou procedimento, use uma Instrução de Propriedade, seguida por uma instruçã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 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 instruções e Property as End Property instruções, escreva uma Instrução Get, seguida de uma instruçãoEnd Get. Você não precisa definir parâmetros para o Get procedimento.

  2. Coloque as instruções de código para recuperar o valor da propriedade entre as instruções e Get as End Get instruções. 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 ao 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 instruções e Property as End Property instruções, escreva uma Instrução Set, seguida de uma instruçãoEnd Set.

  2. Na instrução Set, siga a palavra-chave Set 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 chamado Value será definido, cujo tipo é da própria propriedade. Se a lista de parâmetros não estiver vazia, você pode 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 instruções e Set as End Set instruções. 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 de valor 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 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 procedimento Set tenta dividi-lo em dois nomes constituintes. Se ele não encontrar um espaço, armazenará tudo como o 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)

Confira também