Declaração do Imóvel

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

Sintaxe

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

  • attributelist

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

  • Default

    Opcional. Especifica que essa propriedade é a propriedade padrão para a classe ou estrutura na qual ela é definida. As 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 em qualquer um dos seus procedimentos de propriedade.

  • accessmodifier

    Opcional na Property declaração e em no máximo uma das Get Set e declarações. Pode ser um dos seguintes:

    Consulte Níveis de acesso no Visual Basic.

  • propertymodifiers

    Opcional. Pode ser um dos seguintes:

  • Shared

    Opcional. Ver Partilhado.

  • Shadows

    Opcional. Veja Sombras.

  • ReadOnly

    Opcional. Consulte Somente leitura.

  • WriteOnly

    Opcional. Consulte WriteOnly.

  • Iterator

    Opcional. Consulte Iterator.

  • name

    Obrigatório. Nome do imóvel. Consulte Nomes de elementos declarados.

  • parameterlist

    Opcional. Lista de nomes de variáveis locais que representam os parâmetros desta propriedade e possíveis parâmetros adicionais do Set procedimento. Consulte Lista de parâmetros.

  • returntype

    Obrigatório se Option Strict for On. Tipo de dados do valor retornado por esta propriedade.

  • Implements

    Opcional. Indica que essa propriedade implementa uma ou mais propriedades, cada uma definida em uma interface implementada pela classe ou estrutura que contém essa propriedade. Consulte Declaração de implementos.

  • implementslist

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

    implementedproperty [ , implementedproperty ... ]

    Cada implementedproperty um tem a seguinte sintaxe e partes:

    interface.definedname

    Parte Description
    interface Obrigatório. Nome de uma interface implementada pela classe ou estrutura que contém esta propriedade.
    definedname Obrigatório. Nome pelo qual a propriedade é definida em interface.
  • Get

    Opcional. Obrigatório se a propriedade estiver marcada ReadOnly. Inicia um Get procedimento de propriedade que é usado para retornar o valor da propriedade. A Get instrução não é usada com propriedades implementadas automaticamente.

  • statements

    Opcional. Bloco de instruções a serem executadas dentro do Get procedimento ou Set .

  • End Get

    Encerra o procedimento de Get propriedade.

  • Set

    Opcional. Obrigatório se a propriedade estiver marcada WriteOnly. Inicia um Set procedimento de propriedade que é usado para armazenar o valor da propriedade. A Set instrução não é usada com propriedades implementadas automaticamente.

  • End Set

    Encerra o procedimento de Set propriedade.

  • End Property

    Encerra a definição desta propriedade.

Observações

A Property declaração introduz a declaração de um imóvel. Uma propriedade pode ter um Get procedimento (somente leitura), um Set procedimento (somente gravação) ou ambos (leitura-gravação). Você pode omitir o procedimento e Set ao usar uma propriedade implementada Get automaticamente. Para obter mais informações, consulte Propriedades implementadas automaticamente.

Você pode usar Property apenas no nível da classe. Isso significa que o contexto de declaração para uma propriedade deve ser uma classe, estrutura, módulo ou interface e não pode ser um arquivo de origem, namespace, procedimento ou bloco. Para obter mais informações, consulte Contextos de declaração e níveis de acesso padrão.

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

Visual Basic passa um parâmetro para o Set procedimento durante atribuições de propriedade. Se você não fornecer um parâmetro para Seto , o ambiente de desenvolvimento integrado (IDE) usará um parâmetro implícito chamado value. Este parâmetro contém o valor a ser atribuído à propriedade. Normalmente, você armazena esse valor em uma variável local privada e o retorna sempre que o Get procedimento é chamado.

Regras

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

    Se você estiver definindo uma ReadOnly ou WriteOnly propriedade, o procedimento de propriedade única (Get ou Set, respectivamente) representa toda a propriedade. Não é possível declarar um nível de acesso diferente para tal procedimento, porque isso definiria dois níveis de acesso para a propriedade.

  • Tipo de retorno. A Property instrução pode declarar o tipo de dados do valor que ela 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 retornará Object.

  • Implementação. Se essa propriedade usa a palavra-chave Implements , a classe ou estrutura que contém deve ter uma Implements instrução imediatamente após sua Class instrução ou Structure . A Implements instrução deve incluir cada interface especificada em implementslist. No entanto, o nome pelo qual uma interface define o Property (in definedname) não precisa ser o mesmo que o nome dessa propriedade (in name).

Comportamento

  • Devolução de um Procedimento de Propriedade. Quando o Get procedimento ou Set retorna ao código de chamada, a execução continua com a instrução seguindo a instrução que o invocou.

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

  • Valor de retorno. Para retornar um valor de um Get procedimento, você pode atribuir o valor ao nome da propriedade ou incluí-lo em uma Return instrução. O exemplo a seguir atribui o valor de retorno ao nome quoteForTheDay da propriedade e, em seguida, usa a Exit Property instrução 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 ao name, o Get procedimento retornará o valor padrão para o tipo de dados da propriedade.

    Ao Return mesmo tempo, a instrução atribui o valor de retorno do Get procedimento e sai do 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