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 usarPrivate
na propriedade ou em qualquer um dos seus procedimentos de propriedade.accessmodifier
Opcional na
Property
declaração e em no máximo uma dasGet
Set
e declarações. Pode ser um dos seguintes:Consulte Níveis de acesso no Visual Basic.
propertymodifiers
Opcional. Pode ser um dos seguintes:
MustOverride Overrides
NotOverridable Overrides
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
forOn
. 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 umGet
procedimento de propriedade que é usado para retornar o valor da propriedade. AGet
instrução não é usada com propriedades implementadas automaticamente.statements
Opcional. Bloco de instruções a serem executadas dentro do
Get
procedimento ouSet
.End Get
Encerra o procedimento de
Get
propriedade.Set
Opcional. Obrigatório se a propriedade estiver marcada
WriteOnly
. Inicia umSet
procedimento de propriedade que é usado para armazenar o valor da propriedade. ASet
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 Set
o , 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 declaradaFriend
, você pode declarar oSet
procedimentoPrivate
, mas nãoPublic
.Se você estiver definindo uma
ReadOnly
ouWriteOnly
propriedade, o procedimento de propriedade única (Get
ouSet
, 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 umaImplements
instrução imediatamente após suaClass
instrução ouStructure
. AImplements
instrução deve incluir cada interface especificada emimplementslist
. No entanto, o nome pelo qual uma interface define oProperty
(indefinedname
) não precisa ser o mesmo que o nome dessa propriedade (inname
).
Comportamento
Devolução de um Procedimento de Propriedade. Quando o
Get
procedimento ouSet
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 eReturn
causam uma saída imediata de um procedimento de propriedade. Qualquer número deExit Property
eReturn
instruções pode aparecer em qualquer lugar no procedimento, e você pode misturarExit Property
eReturn
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 umaReturn
instrução. O exemplo a seguir atribui o valor de retorno ao nomequoteForTheDay
da propriedade e, em seguida, usa aExit 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 aoname
, oGet
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 doGet
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