Compartilhar via


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

  1. Declare a propriedade da forma normal.Não especifique as palavras-chave Shared ou Private.

  2. Inclua a palavra-chave Default na declaração da propriedade.

  3. 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

  1. Declare uma variável do tipo recipiente da classe ou estrutura.

    Dim x As New class1(3)
    
  2. Use o nome de variável sozinho em uma expressão em que você normalmente incluiria o nome da propriedade.

    MsgBox(x)
    
  3. 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))
    
  4. 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))
    
  5. 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"
    
  6. 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

Instrução Property

Padrão (Visual Basic)

Conceitos

Procedimentos de propriedade (Visual Basic)

Parâmetros de procedimentos e argumentos (Visual Basic)

Diferenças entre variáveis e propriedades em Visual Basic