Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
attributelistOpcional. Lista de atributos que se aplicam a esta propriedade ou
GetSetprocedimento. Consulte Lista de Atributos.DefaultOpcional. 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 usarPrivatena propriedade ou em qualquer um dos seus procedimentos de propriedade. Para obter exemplos e orientações detalhadas, consulte Como: Declarar e chamar uma propriedade padrão no Visual Basic.accessmodifierOpcional na
Propertydeclaração e em no máximo uma dasGetSete declarações. Pode ser um dos seguintes:Consulte Níveis de acesso no Visual Basic.
propertymodifiersOpcional. Pode ser um dos seguintes:
MustOverride OverridesNotOverridable Overrides
SharedOpcional. Ver Partilhado.
ShadowsOpcional. Veja Sombras.
ReadOnlyOpcional. Consulte Somente leitura.
WriteOnlyOpcional. Consulte WriteOnly.
IteratorOpcional. Consulte Iterator.
nameObrigatório. Nome do imóvel. Consulte Nomes de elementos declarados.
parameterlistOpcional. Lista de nomes de variáveis locais que representam os parâmetros desta propriedade e possíveis parâmetros adicionais do
Setprocedimento. As propriedades parametrizadas geralmente são usadas para criar indexadores ou propriedades padrão que permitem acesso semelhante a uma coleção. Consulte Lista de parâmetros e Como declarar e chamar uma propriedade padrão no Visual Basic.returntypeObrigatório se
Option StrictforOn. Tipo de dados do valor retornado por esta propriedade.ImplementsOpcional. 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.
implementslistNecessário se
Implementsfor fornecido. Lista de propriedades que estão sendo implementadas.implementedproperty [ , implementedproperty ... ]Cada
implementedpropertyum tem a seguinte sintaxe e partes:interface.definednameParte Description interfaceObrigatório. Nome de uma interface implementada pela classe ou estrutura que contém esta propriedade. definednameObrigatório. Nome pelo qual a propriedade é definida em interface.GetOpcional. Obrigatório se a propriedade estiver marcada
ReadOnly. Inicia umGetprocedimento de propriedade que é usado para retornar o valor da propriedade. AGetinstrução não é usada com propriedades implementadas automaticamente.statementsOpcional. Bloco de instruções a serem executadas dentro do
Getprocedimento ouSet.End GetEncerra o procedimento de
Getpropriedade.SetOpcional. Obrigatório se a propriedade estiver marcada
WriteOnly. Inicia umSetprocedimento de propriedade que é usado para armazenar o valor da propriedade. ASetinstrução não é usada com propriedades implementadas automaticamente.End SetEncerra o procedimento de
Setpropriedade.End PropertyEncerra 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 Get ao usar uma propriedade implementada Set 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. Para obter exemplos detalhados de níveis de acesso mistos, consulte Como declarar uma propriedade com níveis de acesso mistos.
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
GetSetprocedimento, 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 oSetprocedimentoPrivate, mas nãoPublic.Se você estiver definindo uma
ReadOnlyouWriteOnlypropriedade, o procedimento de propriedade única (GetouSet, 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
Propertyinstruçã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 umaImplementsinstrução imediatamente após suaClassinstrução ouStructure. AImplementsinstruçã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
Getprocedimento ouSetretorna ao código de chamada, a execução continua com a instrução seguindo a instrução que o invocou.As
Exit Propertydeclarações eReturncausam uma saída imediata de um procedimento de propriedade. Qualquer número deExit PropertyeReturninstruções pode aparecer em qualquer lugar no procedimento, e você pode misturarExit PropertyeReturndeclarações.Valor de retorno. Para retornar um valor de um
Getprocedimento, você pode atribuir o valor ao nome da propriedade ou incluí-lo em umaReturninstrução. O exemplo a seguir atribui o valor de retorno ao nomequoteForTheDayda propriedade e, em seguida, usa aExit Propertyinstrução para retornar.Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertySe você usar
Exit Propertysem atribuir um valor aoname, oGetprocedimento retornará o valor padrão para o tipo de dados da propriedade.Ao
Returnmesmo tempo, a instrução atribui o valor de retorno doGetprocedimento 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
Propriedades parametrizadas
O exemplo a seguir mostra como criar uma propriedade parametrizada, também chamada de indexador, que permite acesso semelhante a uma matriz a uma coleção:
Class SampleCollection
' Define a local collection to store strings.
Private items As New List(Of String)
' Define a parameterized property (indexer) for the collection.
Default Public Property Item(ByVal index As Integer) As String
Get
' Return the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
Return items(index)
Else
Return Nothing
End If
End Get
Set(ByVal value As String)
' Set the item at the specified index.
If index >= 0 AndAlso index < items.Count Then
items(index) = value
ElseIf index = items.Count Then
' Allow adding new items at the end.
items.Add(value)
End If
End Set
End Property
' Add a Count property for convenience.
Public ReadOnly Property Count As Integer
Get
Return items.Count
End Get
End Property
' Add method to add items.
Public Sub Add(ByVal item As String)
items.Add(item)
End Sub
End Class
Para obter exemplos abrangentes de uso de propriedade, incluindo implementação automática, níveis de acesso mistos e cenários de validação, consulte Procedimentos de propriedade.
Consulte também
Tipos de propriedade e características
Cenários avançados de propriedades
- Como: Declarar e chamar uma propriedade padrão no Visual Basic
- Como: Declarar uma propriedade com níveis de acesso mistos