Compartilhar via


Propriedade declaração

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 ] 
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

Partes

  • 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:

    SeeNíveis de acesso em Visual Basic.

  • propertymodifiers
    Opcional.Pode ser um dos seguintes:

  • Shared
    Opcional.SeeCompartilhamento (Visual Basic).

  • Shadows
    Opcional.SeeSombras.

  • ReadOnly
    Opcional.SeeReadOnly (Visual Basic).

  • WriteOnly
    Opcional.SeeSomente-leitura.

  • name
    Obrigatório.Nome da propriedade.SeeNomes de Elementos Declarados.

  • 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.SeeLista de parâmetros.

  • 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.SeeImplementa Declaração.

  • 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

    Parte

    Descriçã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
    Necessária a menos que a propriedade esteja marcada como WriteOnly.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
    Necessária a menos que a propriedade esteja marcada como ReadOnly.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 usar Property somente no nível de módulo. 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 obter mais informações, consulte Declaração de contextos e níveis de acesso padrã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 escrita, você pode, opcionalmente, especificar um nível de acesso diferente para o procedimento Get ou Set, mas não para 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. Uma instrução Property pode declarar o tipo de dados do 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 essa propriedade utiliza a palavra-chaveImplements , a classe ou estrutura continente deve ter uma instrução Implements imediatamente após sua declaração de Class ou 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 Get ou Set retorna para o código de chamada, a execução continua com a instrução após a instrução que o 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 a partir de um procedimentoGet, você pode ou atribuir o valor ao nome da propriedade ou incluí-lo em uma instrução 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

Tarefas

Como: Adicionar campos e propriedades a uma classe

Conceitos

Propriedades Padrão

Referência

Declaração Get

Declaração Set (Visual Basic)

Lista de parâmetros