Instrução Property

Declara o nome de uma propriedade e os procedimentos de propriedade usados para armazenar e recuperar o valor da propriedade.

[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] [ Iterator ]
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

Partes

Termo

Definição

attributelist

Opcional.Lista de atributos que se aplicam a esta propriedade ou procedimento Get ou Set.Veja Lista de Atributos.

Default

Opcional.Especifica que esta propriedade é a propriedade padrão para a classe ou estrutura na qual ele está definido.Propriedades padrão devem aceitar parâmetros e podem ser definidas e recuperadas sem especificar o nome da propriedade.Se você declarar a propriedade como Default, você não pode usar Private na propriedade ou um dos procedimentos da propriedade.

accessmodifier

Opcional na instrução Property e no máximo numa instrução Get e Set.Pode ser um dos seguintes:

Veja Níveis de acesso em Visual Basic.

propertymodifiers

Opcional.Pode ser um dos seguintes:

Shared

Opcional.Consulte Compartilhado (Visual Basic).

Shadows

Opcional.Consulte Sombras (Visual Basic).

ReadOnly

Opcional.Consulte ReadOnly (Visual Basic).

WriteOnly

Opcional.Consulte WriteOnly (Visual Basic).

Iterator

Opcional.Consulte iterador.

name

Obrigatório.Nome da propriedade.Consulte Nomes de elementos declarados (Visual Basic).

parameterlist

Opcional.Lista de nomes de variáveis locais que representa os parâmetros da propriedade e possíveis parâmetros adicionais do procedimento Set.Consulte Lista de parâmetros (Visual Basic).

returntype

Necessário se OptionStrict está On.Tipo de Dados do valor retornado por essa propriedade.

Implements

Opcional.Indica que essa propriedade implementa uma ou mais propriedades, cada uma delas definidas em uma interface implementada por essa classe ou estrutura contendo a propriedade.Consulte Instrução Implements.

implementslist

Necessário se Implements é fornecido.Lista de propriedades que estão sendo implementadas.

implementedproperty [ , implementedproperty ... ]

Cada implementedproperty possui a seguinte sintaxe e partes:

interface.definedname

ParteDescrição
interface Obrigatório.Nome de uma interface implementada por essa classe ou estrutura contendo a propriedade.
definedname Obrigatório.Nome pelo qual a propriedade é definida na interface.

Get

Opcional.Necessário se a propriedade é WriteOnlymarcado.Inicia um procedimento de propriedade Get que é usado para retornar o valor da propriedade.

statements

Opcional.Bloco de instruções para executar dentro do procedimento Get ou Set.

End Get

Finaliza o procedimento de propriedade Get.

Set

Opcional.Necessário se a propriedade é ReadOnlymarcado.Inicia um procedimento de propriedade Set que é usado para armazenar o valor da propriedade.

End Set

Finaliza o procedimento de propriedade Set.

End Property

Finaliza a definição dessa propriedade.

Comentários

A instrução Property apresenta a declaração de uma propriedade.Uma propriedade pode ter um procedimento Get (somente leitura), um procedimento Set (somente gravação), ou ambos (leitura-gravação).Você pode omitir o procedimento de Get e de Set ao usar uma propriedade automática implementado.Para mais informações, consulte Propriedades de auto-implementado (Visual Basic).

Você pode usar Property somente em nível de classe.Isso significa que o contexto da declaração para uma propriedade deve ser uma classe, estrutura, módulo, ou interface, e não pode ser um arquivo fonte, namespace, procedimento ou bloco.Para mais informações, consulte Níveis de acesso padrão (Visual Basic) e os contextos de declaração.

Por padrão, as propriedades usam acesso público.Você pode ajustar o nível de acesso de uma propriedade com um modificador de acesso na instrução Property,e, opcionalmente, você pode ajustar um dos procedimentos de suas propriedades para um nível de acesso mais restritivo.

Visual Basic passa um parâmetro para o procedimento Set durante atribuições de propriedade.Se não for fornecido um parâmetro para Set, o ambiente de desenvolvimento integrado (IDE) usa uma parâmetro implícito de nome value.O parâmetro armazena o valor a ser atribuído à propriedade.Você, normalmente, armazena esse valor em uma variável local privada e o retorna quando o procedimento Get for chamado.

Regras.

  • Níveis de Acesso Mistos. Se você estiver definindo uma propriedade de leitura e gravação, você pode opcionalmente especificar um nível de acesso diferente para Get ou procedimento de Set , mas não ambos.Se isso for feito, o nível de acesso do procedimento deve ser mais restritivo que o nível de acesso da propriedade.Por exemplo, se a propriedade for declarada como Friend, você pode declarar o procedimento Set como Private, mas não como Public.

    Se você estiver definindo uma propriedade ReadOnly ou WriteOnly, o único procedimento de propriedade (Get ou Set,respectivamente) representa tudo da propriedades.Você não pode declarar um nível de acesso diferente para tal procedimento, porque que iria definir dois níveis de acesso para a propriedade.

  • Tipo de retorno. A declaração de Property pode declarar o tipo de dados de valor que retorna.Você pode especificar qualquer tipo de dados ou o nome de uma enumeração, estrutura, Classe ou interface.

    Se você não especificar returntype, a propriedade retorna Object.

  • implementação. Se esta propriedade usa a palavra-chave de Implements , a classe ou estrutura contenedora devem ter uma instrução de Implements imediatamente depois da declaração de Class ou de Structure .A instrução Implements deve incluir cada interface especificada em implementslist.No entanto, o nome por qual uma interface define a Property (em definedname) não precisa ser o mesmo que o nome da propriedade (em name).

Comportamento

  • Retornando a partir de um Procedimento de Propriedade. Quando o procedimento retorna de Get ou de Set o código de chamada, continuarão execução com a declaração que segue a declaração que a chamou.

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

  • valor de retorno. Para retornar um valor de um procedimento de Get , você pode atribuir um valor ao nome da propriedade ou incluí-lo em uma instrução de Return .O exemplo a seguir atribui o valor de retorno ao nome da propriedade quoteForTheDay e, em seguida, usa a instrução Exit Property para retornar.

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

    Se você usar Exit Property sem atribuir um valor name, o procedimento Get retornará o valor padrão para o tipo de dados da propriedade.

    A instrução Return ao mesmo tempo atribui o valor de retorno do procedimento Get e sai de procedimento.O exemplo a seguir mostra isso.

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

Exemplo

O exemplo a seguir declara uma propriedade em uma classe.

Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value 
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

Consulte também

Referência

Obtenha a instrução

Instrução Set (Visual Basic)

Lista de parâmetros (Visual Basic)

Padrão (Visual Basic)

Conceitos

Propriedades de auto-implementado (Visual Basic)

Outros recursos

Objetos e Classes em Visual Basic