Instrução Get

Declara um procedimento de propriedade Get usado para recuperar o valor de uma propriedade.

Sintaxe

[ <attributelist> ] [ accessmodifier ] Get()  
    [ statements ]  
End Get  

Partes

Termo Definição
attributelist Opcional. Veja Lista de atributo.
accessmodifier Opcional em no máximo uma das instruções Get e Set nesta propriedade. Um dos seguintes pode ser feito:

- Protegido
- Friend
- Privado
- Protected Friend

Consulte Níveis de acesso no Visual Basic.
statements Opcional. Uma ou mais instruções que são executadas quando o procedimento de propriedade Get é chamado.
End Get Obrigatórios. Encerra a definição do procedimento de propriedade Get.

Comentários

Cada propriedade deve ter um procedimento de propriedade Get, a menos que a propriedade seja marcada WriteOnly. O procedimento Get é usado para retornar o valor atual da propriedade.

O Visual Basic chama automaticamente o procedimento Get de uma propriedade quando uma expressão solicita o valor da propriedade.

O corpo da declaração de propriedade pode conter apenas os procedimentos Get e Set da propriedade entre a Declaração de Propriedade e a instrução End Property. Ele não pode armazenar nada além desses procedimentos. Em especial, ele não pode armazenar o valor atual da propriedade. Você deve armazenar esse valor fora da propriedade, porque se você armazená-lo dentro de qualquer um dos procedimentos de propriedade, o outro procedimento de propriedade não poderá acessá-lo. A abordagem usual é armazenar o valor em uma variável Privada declarada no mesmo nível da propriedade. Você deve definir um procedimento Get dentro da propriedade à qual ele se aplica.

O procedimento Get é padrão para o nível de acesso da propriedade que o contém, a menos que você use accessmodifier na instrução Get.

Regras

  • Níveis de acesso mistos. Se você estiver definindo uma propriedade de leitura/gravação, opcionalmente poderá especificar um nível de acesso diferente para o procedimento Get ou o procedimento Set, mas não ambos. Se você fizer isso, o nível de acesso ao procedimento deverá ser mais restritivo do que o nível de acesso da propriedade. Por exemplo, se a propriedade for declarada Friend, você poderá declarar o procedimento GetPrivate, mas não Public.

    Se você estiver definindo uma propriedade ReadOnly, o procedimento Get representará toda a propriedade. Você não pode declarar um nível de acesso diferente para Get, pois isso definiria dois níveis de acesso para a propriedade.

  • Tipo de retorno. A instrução de propriedade pode declarar o tipo de dados do valor que retorna. O procedimento Get retorna automaticamente esse tipo de dados. Você pode especificar qualquer tipo de dados ou o nome de uma enumeração, estrutura, classe ou interface.

    Se a instrução Property não especificar returntype, o procedimento retornará Object.

Comportamento

  • Retorno de um procedimento. Quando o procedimento Get retorna ao código de chamada, a execução continua dentro da instrução que solicitou o valor da propriedade.

    Os procedimentos de propriedade Get podem retornar um valor usando a instrução return ou atribuindo o valor retornado ao nome da propriedade. Para obter mais informações, consulte "Valor retornado" na instrução function.

    As instruções Exit Property e Return causam uma saída imediata de um procedimento de propriedade. Qualquer número de instruções Exit Property e Return podem aparecer em qualquer lugar no procedimento, e você pode misturar instruções Exit Property e Return.

  • Valor de retorno. Para retornar um valor de um procedimento Get, você pode atribuir o valor ao nome da propriedade ou incluí-lo em uma instrução return. Ao mesmo tempo, a instrução Return atribui o valor de retorno do procedimento Get e sai do procedimento.

    Se você usar Exit Property sem atribuir um valor ao nome da propriedade, o procedimento Get retornará o valor padrão para o tipo de dados da propriedade. Para obter mais informações, consulte "Valor retornado" na instrução function.

    O exemplo a seguir ilustra duas maneiras pelas quais a propriedade somente leitura quoteForTheDay pode retornar o valor mantido na variável privada quoteValue.

    Private quoteValue As String = "No quote assigned yet."
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            QuoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    
    ReadOnly Property QuoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

Exemplo

O exemplo a seguir usa a instrução Get para retornar o valor de uma propriedade.

Class propClass
    ' Define a private local variable to store the property value.
    Private currentTime As String
    ' Define the read-only property.
    Public ReadOnly Property DateAndTime() As String
        Get
            ' The Get procedure is called automatically when the
            ' value of the property is retrieved.
            currentTime = CStr(Now)
            ' Return the date and time As a string.
            Return currentTime
        End Get
    End Property
End Class

Confira também