Como declarar e chamar uma propriedade padrão no Visual Basic
Uma propriedade padrão é uma propriedade de classe ou estrutura que seu código pode acessar sem especificá-la. Ao chamar os nomes de código de uma classe ou estrutura, mas não uma propriedade, se o contexto permitir o acesso a uma propriedade, o Visual Basic resolverá o acesso à propriedade padrão dessa classe ou estrutura, se existir.
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, confira Padrão.
Para declarar uma propriedade padrão
Declare a propriedade da maneira normal. Não especifique a palavra-chave
Shared
ouPrivate
.Inclua a palavra-chave
Default
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 a contém.
Dim x As New class1(3)
Use apenas o nome da variável em uma expressão em que você normalmente 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 siga o sinal de 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 padrão myProperty
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 propriedade Item[] 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 se acessa uma propriedade padrão. Isso pode levar a erros de compilador ou erros de lógica de tempo de execução sutis.
Você pode reduzir um pouco a chance de erros de propriedade padrão usando sempre a Instrução Option Strict 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, deverá determinar se ela tem uma propriedade padrão e, se for o caso, qual é o nome dela.
Devido a essas desvantagens, você deveria considerar não definir propriedades padrão. Para legibilidade de código, você também deve considerar sempre se referir a todas as propriedades explicitamente, até mesmo propriedades padrão.
Confira também
- Procedimentos de propriedade
- Parâmetros e Argumentos de Procedimento
- Instrução Property
- Default
- 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 inserir um valor em uma propriedade
- Como obter um valor a partir de uma propriedade