Partilhar via


Propriedades e Procedimentos de Propriedades

Você pode usar as propriedades e campos para armazenar informações em um objeto.Enquanto os campos são simplesmente variáveis públicas, propriedades usam procedimentos de propriedade para controlar como os valores são definidos ou retornados.Procedimentos de propriedades são blocos de código declarados dentro de definições de propriedade que você pode usar para executar código quando um valor da propriedade é definido ou recuperado.

Visual Basic tem dois tipos de procedimentos de propriedade: the Get procedimentos de propriedade para recuperar um valor da propriedade e o Set procedimentos de propriedade para atribuir um valor a uma propriedade. Por exemplo, uma propriedade que armazena o saldo de uma conta bancária pode usar código em um procedimento de propriedade Get para postar juros e verificar taxas de serviço antes de retornar o saldo disponível.Você poderia então utilizar um procedimento de propriedade Set para validar o saldo e impedir que ele seja atualizado incorretamente.Resumindo, procedimento de propriedade permitem a um objeto proteger e validar seus próprios dados.

O fragmento de código a seguir compara como campos e propriedades validam valores.

Protected Sub TestFieldsAndProperties()
    ' Assume, for this example, that the only valid values for
    ' the field and property are numbers less than 10.
    Dim NewClass As New ThisClass

    ' Test data validation. 

    ' Works because there is no data validation.
    NewClass.ThisField = 36
    ' Will print 36.
    MsgBox("ThisField = " & NewClass.ThisField)

    ' The attempt to set the field to a value greater than 10 will silently fail.
    NewClass.ThisProperty = 36
    ' The next statement will print the old value of 0 instead.
    MsgBox("ThisProperty = " & NewClass.ThisProperty)
End Sub

Public Class ThisClass
    ' Declare a field.
    Public ThisField As Integer
    ' Field used for Property Set operations.
    Private thisPropertyValue As Integer = 0
    ' Declare a property.
    Public Property ThisProperty() As Integer
        Get
            Return thisPropertyValue
        End Get
        Set(ByVal Value As Integer)
            ' Only allow Set operation for values less than 10.
            If Value < 10 Then thisPropertyValue = Value
        End Set
    End Property
End Class

O procedimento TestFieldsAndProperties cria uma instância da classe e define e recupera os valores dos campos e propriedades.Para fins de exemplo, presume-se que os valores somente válido são números inferiores a 10.Como não há nenhuma forma de validar valores atribuídos aos campos, definir o campo valor 36 é permitido.A propriedade, no entanto, somente executa Atribuição para números menores do que 10, portanto, a tentativa para defini-la para 36 é ignorada.

Propriedades somente leitura e somente gravação

A maioria das propriedades possuem os procedimentos de propriedade Get e Set , que você pode usar para ler e modificar o valor armazenado.No entanto, você pode usar os modificadores ReadOnly ou WriteOnly para evitar que propriedades sejam modificadas ou lidas.

Propriedades somente leitura não podem ter procedimento de propriedade Set; tais propriedades são úteis para itens que você deseja expor, mas não permite que sejam modificados.Por exemplo, você pode usar uma propriedade somente leitura para fornecer a velocidade do processador de um computador.

Propriedades somente gravação não podem ter procedimentos de propriedade Get e são úteis para configurar objetos com dados que não devem ou não podem ser armazenados no objeto.Por exemplo, uma propriedade somente gravação pode ser usada para pegar uma senha e alterar o estado do objeto sem armazenar a senha.

Observação:

Versões anteriores do Visual Basic suporte Let procedimentos de propriedade para uso ao atribuir objetos a propriedades. Visual Basic elimina a necessidade de Let procedimentos de propriedade porque a atribuição de objeto é tratada como qualquer Outros tipo de atribuição.

Consulte também

Conceitos

Procedimentos de Propriedade

Propriedade procedimentos versus campos

Referência

Declaração Get

Declaração Set (Visual Basic)

ReadOnly (Visual Basic)

Somente-leitura