Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma propriedade padrão é uma propriedade de classe ou estrutura que seu código pode acessar sem especificá-la. Quando o código nomeia uma classe ou estrutura, mas não uma propriedade, e o contexto permite o acesso a uma propriedade, o Visual Basic resolve o acesso à propriedade padrão dessa classe ou estrutura, se houver uma.
Uma classe ou estrutura pode ter no máximo uma propriedade padrão. No entanto, você pode sobrecarregar uma propriedade padrão e ter mais de uma versão dela.
Para obter mais informações, consulte Padrão.
Para declarar uma propriedade padrão
Declare a propriedade da maneira normal. Não especifique a palavra-chave
SharedouPrivate.Inclua a
Defaultpalavra-chave na declaração de propriedade.Especifique pelo menos um parâmetro para a propriedade. Você não pode definir uma propriedade padrão que não tenha pelo menos um argumento.
Default Property myProperty(ByVal index As Integer) As String
Para chamar uma propriedade padrão
Declare uma variável do tipo de classe ou estrutura que contém.
Dim x As New class1(3)Use o nome da variável sozinho em uma expressão em que normalmente você incluiria o nome da propriedade.
MsgBox(x)Siga o nome da variável com uma lista de argumentos entre parênteses. Uma propriedade padrão deve ter pelo menos um argumento.
MsgBox(x(1))Para recuperar o valor da propriedade padrão, use o nome da variável, com uma lista de argumentos, em uma expressão ou seguindo o sinal igual (
=) em uma instrução de atribuição.MsgBox(x(1) & x(2) & x(3))Para definir o valor da propriedade padrão, use o nome da variável, com uma lista de argumentos, no lado esquerdo de uma instrução de atribuição.
x(1) = "Hello" x(2) = " " x(3) = "World"Você sempre pode especificar o nome da propriedade padrão junto com o nome da variável, assim como faria para acessar qualquer outra propriedade.
x.myProperty(1) = "Hello" x.myProperty(2) = " " x.myProperty(3) = "World"
Exemplo 1
O exemplo a seguir declara uma propriedade padrão em uma classe.
Public Class class1
Private myStrings() As String
Sub New(ByVal size As Integer)
ReDim myStrings(size)
End Sub
Default Property myProperty(ByVal index As Integer) As String
Get
' The Get property procedure is called when the value
' of the property is retrieved.
Return myStrings(index)
End Get
Set(ByVal Value As String)
' The Set property procedure is called when the value
' of the property is modified.
' The value to be assigned is passed in the argument
' to Set.
myStrings(index) = Value
End Set
End Property
End Class
Exemplo 2
O exemplo a seguir demonstra como chamar a propriedade myProperty padrão na classe class1. As três instruções de atribuição armazenam valores em myProperty, e a chamada MsgBox lê os valores.
Sub Test()
Dim x As New class1(3)
x(1) = "Hello"
x(2) = " "
x(3) = "World"
MsgBox(x(1) & x(2) & x(3))
End Sub
O uso mais comum de uma propriedade padrão é a Item[] propriedade em várias classes de coleção.
Programação robusta
As propriedades padrão podem resultar em uma pequena redução nos caracteres de código-fonte, mas podem tornar seu código mais difícil de ler. Se o código de chamada não estiver familiarizado com sua classe ou estrutura, quando ele fizer uma referência ao nome de classe ou estrutura, ele não poderá ter certeza se essa referência acessa a própria classe ou estrutura ou uma propriedade padrão. Isso pode levar a erros do compilador ou erros sutis de lógica de tempo de execução.
Você pode reduzir um pouco a chance de erros de propriedade padrão sempre usando a Instrução Opção Estrita para definir a verificação de tipo do compilador como On.
Se você estiver planejando usar uma classe ou estrutura predefinida em seu código, será necessário determinar se ela tem uma propriedade padrão e, em caso afirmativo, qual é o nome dela.
Devido a essas desvantagens, você deve considerar não definir propriedades padrão. Para legibilidade de código, você também deve considerar sempre especificar todas as propriedades explicitamente, incluindo as propriedades padrão.
Consulte também
- Procedimentos de propriedade
- Parâmetros e Argumentos de Procedimento
- Instrução Property
- Inadimplência
- Diferenças entre propriedades e variáveis no Visual Basic
- Como criar uma propriedade
- Como declarar uma propriedade com níveis de acesso mistos
- Como chamar um procedimento de propriedade
- Como colocar um valor em uma propriedade
- Como obter um valor de uma propriedade