Como: declarar e chamar uma propriedade padrão em Visual Basic
Uma propriedade padrão é uma propriedade de classe ou estrutura que seu código pode acessar sem especificá-la.Ao chamar por apelidos uma classe ou estrutura, mas não uma propriedade e o contexto permite o acesso a uma propriedade, Visual Basic decide o acesso à propriedade padrão dessa classe ou estrutura se uma 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 mais informações, consulte Padrão (Visual Basic).
Declarar uma propriedade padrão
Declare a propriedade da forma normal.Não especifique as palavras-chave Shared ou Private.
Inclua a palavra-chave Default na declaração da propriedade.
Especifique pelo menos um parâmetro para a propriedade.Não é possível definir uma propriedade padrão que não tem pelo menos um argumento.
Default Property myProperty(ByVal index As Integer) As String
Chamar uma propriedade padrão
Declare uma variável do tipo recipiente da classe ou estrutura.
Dim x As New class1(3)
Use o nome de variável sozinho em uma expressão em que você normalmente incluiria o nome da propriedade.
MsgBox(x)
Após o nome da variável, coloque uma lista de argumentos entre parênteses.Uma propriedade padrão deve receber ao 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 depois do sinal de igual (=) em uma declaração de atribuição.
MsgBox(x(1) & x(2) & x(3))
Para definir o valor da propriedade padrão, use o nome de variável, com um lista de argumentos, no lado esquerdo de uma declaração de atribuição.
x(1) = "Hello" x(2) = " " x(3) = "World"
Você sempre pode especificar o nome da propriedade padrão juntamente with o nome da variável, do mesmo modo que você faria para acessar qualquer outra propriedade.
x.myProperty(1) = "Hello" x.myProperty(2) = " " x.myProperty(3) = "World"
Exemplo
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
O exemplo a seguir demonstra como chamar a propriedade padrão myProperty na classe class1.As três declaraçõ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 é o 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 do código-fonte, mas elas podem deixar seu código mais difícil de ler.Se o código de chamada não está familiarizado com sua classe ou estrutura, quando ele faz uma referência ao nome de classe ou estrutura não poderá determinar se essa referência acessa a classe ou estrutura em si ou uma propriedade padrão.Isso pode levar a erros de compilador ou a sutis erros de lógica em tempo de execução.
Você tanto pode reduzir a chance de erros de propriedade padrão sempre usando a Opção Strict Statement para configurar a verificação do tipo do compilador como On.
Se você estiver planejando usar uma classe ou estrutura predefinidas no seu código, você deve determinar se ela tem uma propriedade padrão, e em caso afirmativo, qual seu nome.
Por causa dessas desvantagens, você deve considerar não definir as propriedades padrão.Para legibilidade de código, você deve também considerar sempre referir-se a todas as propriedades explicitamente, mesmo propriedades padrão.
Consulte também
Tarefas
Como: criar uma propriedade (Visual Basic)
Como: declarar uma propriedade com níveis de acesso misto (Visual Basic)
Como: chamar um procedimento de propriedade (Visual Basic)
Como: colocar um valor em uma propriedade (Visual Basic)
Como: obter um valor de uma propriedade (Visual Basic)
Referência
Conceitos
Procedimentos de propriedade (Visual Basic)