Partilhar via


Propriedades de auto-implementado (Visual Basic)

Propriedades implementadas para auto permitem que você especificar uma propriedade de uma classe de rapidamente sem precisar escrever código para Get e Set a propriedade.Quando você escreve código para uma propriedade de auto-implementado, o compilador Visual Basic cria automaticamente um campo privado para armazenar a variável de propriedade para além de criar associado Get e Set procedimentos.

Com as propriedades de auto-implementada, uma propriedade, incluindo um valor padrão, pode ser declarada em uma única linha.O exemplo a seguir mostra três declarações de propriedade.

Public Property Name As String
Public Property Owner As String = "DefaultName"
Public Property Items As New List(Of String) From {"M", "T", "W"}
Public Property ID As New Guid()

Uma propriedade implementada de auto é equivalente a uma propriedade para o qual o valor da propriedade é armazenado em um campo particular.O exemplo de código a seguir mostra uma propriedade de auto-implementado.

Property Prop2 As String = "Empty"

O exemplo de código a seguir mostra o código equivalente no exemplo anterior de propriedade auto-implementado.

Private _Prop2 As String = "Empty"
Property Prop2 As String
    Get
        Return _Prop2
    End Get
    Set(ByVal value As String)
        _Prop2 = value
    End Set
End Property

Fazendo o campo

Quando você declara uma propriedade implementada para auto, o Visual Basic cria automaticamente um campo particular oculto chamado a fazendo o campo para conter o valor da propriedade.O nome do campo de backup é o nome de propriedade auto-implementado precedido por um caractere de sublinhado (_).Por exemplo, se você declarar uma propriedade de auto-implementada chamada ID, o campo de backup é chamado _ID.Se você incluir um membro da sua classe que também é chamado _ID, você produzir um conflito de nomes e Visual Basic relata um erro do compilador.

O campo de backup também tem as seguintes características:

  • O modificador de acesso para o campo de backup é sempre Private, mesmo quando a própria propriedade tem um nível de acesso diferente, como Public.

  • Se a propriedade estiver marcada como Shared, o campo de backup também é compartilhado.

  • Atributos especificados para a propriedade não se aplicam ao campo de apoio.

  • O campo de backup pode ser acessado do código dentro da classe e de ferramentas de depuração, como a janela Watch.No entanto, o campo de apoio não mostra em uma lista de conclusão de palavras IntelliSense.

Ao inicializar uma propriedade de Auto-implementado

Qualquer expressão que pode ser usado para inicializar um campo é válido para inicializar uma propriedade de auto-implementado.Ao inicializar uma propriedade de auto-implementada, a expressão é avaliada e passada para o Set procedimento para a propriedade.Os exemplos de código a seguir mostram algumas propriedades de auto-implementado que incluem valores iniciais.

Property FirstName As String = "James"
Property PartNo As Integer = 44302
Property Orders As New List(Of Order)(500)

Você não pode inicializar uma propriedade implementado automático que é um membro de um Interface, ou que esteja marcado como MustOverride.

Quando você declara uma propriedade de auto-implementado como um membro de um Structure, você só pode inicializar a propriedade auto-implementado se ele estiver marcado como Shared.

Quando você declara uma propriedade de auto-implementado como uma matriz, você não pode especificar limites de matriz explícita.No entanto, você pode fornecer um valor usando um inicializador de matriz, conforme mostrado nos exemplos a seguir.

Property Grades As Integer() = {90, 73}
Property Temperatures As Integer() = New Integer() {68, 54, 71}

Definições de propriedade que exigem a sintaxe padrão

Propriedades de auto-implementado são convenientes e oferecer suporte a muitos cenários de programação.No entanto, há situações em que você não pode usar uma propriedade de auto-implementado e em vez disso, deve usar o padrão, ou expandido, sintaxe da propriedade.

Você deve usar a sintaxe expandida de definição de propriedade se você deseja fazer qualquer um destes procedimentos:

  • Adicione código para o Get ou Set procedimento de uma propriedade, como o código para validar os valores de entrada na Set procedimento.Por exemplo, convém verificar se uma seqüência de caracteres que representa um número de telefone contém o número necessário de numerais antes de definir o valor da propriedade.

  • Especificar a acessibilidade diferente para o Get e Set procedimento.Por exemplo, você talvez queira fazer o Set procedimento Private e o Get procedimento Public.

  • Criar propriedades que são WriteOnly ou ReadOnly.

  • Usar propriedades parametrizadas (incluindo Default propriedades).Você deve declarar uma propriedade expandida para especificar um parâmetro para a propriedade ou para especificar parâmetros adicionais para o Set procedimento.

  • Coloque um atributo no campo de apoio ou alterar o nível de acesso do campo como fazer.

  • Fornece comentários XML para o campo de apoio.

Expandindo a uma propriedade de Auto-implementado

Se você tiver que converter uma propriedade de auto-implementado em uma propriedade expandida que contém um Get ou Set procedimento, o Editor de códigos de Visual Basic pode gerar automaticamente o Get e Set procedimentos e End Property a declaração da propriedade.O código é gerado se você colocar o cursor sobre a seguinte linha em branco a Property instrução, digite uma g (para Get) ou um s (para Set) e pressione ENTER.O Editor de códigos de Visual Basic gera automaticamente o Get ou Set procedimento para propriedades somente leitura e gravação somente quando você pressiona ENTER no final de um Property instrução.

Consulte também

Tarefas

Como: declarar e chamar uma propriedade padrão em Visual Basic

Como: declarar uma propriedade com níveis de acesso misto (Visual Basic)

Referência

Instrução Property

ReadOnly (Visual Basic)

WriteOnly (Visual Basic)

Outros recursos

Objetos e Classes em Visual Basic