Compartilhar via


Propriedades autoimplementadas (Visual Basic)

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

Com as propriedades de auto-implementado, uma propriedade, incluindo um valor padrão, pode ser declarado 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 de auto-implementado equivale a uma propriedade para o qual o valor da propriedade é armazenado em um campode particular. O exemplo de código a seguir mostra uma propriedadede auto-implementado.

Property Prop2 As String = "Empty"

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

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 propriedadede auto-implementado, Visual Basic cria automaticamente um oculto privado campo chamado de fazendo o campo para conter o valor da propriedade . O nome do campo de backup é o nome da propriedade auto-implementado precedido por um caractere de sublinhado (_). Por exemplo, se você declarar uma propriedade de auto-implementado denominada ID, fazendo o campo é denominado _ID. Se você incluir um membro da sua classe também é chamado _ID, você produzir um conflito de nomes e Visual Basic reporta um errodo 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 propriedade tem um nível de acessodiferente, como Public.

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

  • Atributos especificados para a propriedade fazer não aplicar ao campode backup.

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

Inicializando um Automático-propriedade implementada

Qualquer expressão que pode ser usado para inicializar um campo é válido para inicializar uma propriedadede auto-implementado. Ao inicializar uma propriedadede auto-implementado, a expressão é avaliada e passada para o Setoprocedimento para a propriedade. Os exemplos de código a seguir mostram algumas propriedades de auto-implementado 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 de auto-implementado 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 auto-implementado propriedade se ela estiver marcada como Shared.

Quando você declara uma propriedade do 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

Automático-implementado propriedades 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 deve usar o padrão, ou expandido, a sintaxe de propriedade .

Você precisa usar expandida de propriedade-sintaxe de definição, se você deseja fazer qualquer um dos seguintes:

  • Adicionar o código para o Get ou Setoprocedimento de uma propriedade, como, por exemplo, o código para validar entrada valores a Setprocedimento. 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 da configuração o valor da propriedade .

  • Especificar a acessibilidade de diferentes para o Get e Set procedimento. Por exemplo, convém fazer a 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 de expandido para especificar um parâmetro para a propriedadeou para especificar parâmetros adicionais para o Set procedimento.

  • Coloque um atributo no campode backup ou alterar o nível de acesso do campode backup.

  • Fornece comentários XML para o campode backup.

Expandindo um Automático-propriedade implementada

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

Consulte também

Tarefas

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

Como: Declarar uma propriedade com níveis de acesso mistos (Visual Basic)

Referência

Propriedade declaração

ReadOnly (Visual Basic)

WriteOnly (Visual Basic)

Outros recursos

Objetos e Classes no Visual Basic

Histórico de alterações

Date

History

Motivo

Maio de 2010

Adicionada uma nota sobre como fazer os níveis de acesso do campo .

Comentários do cliente.