Share via


Visão geral de propriedades

Um componente deve definir sistema autônomo propriedades em vez de campos públicos, sistema autônomo sistema autônomo designers visuais sistema autônomo o Visual Studio Propriedades de Vídeo, mas não campos no navegador da propriedade.(Outros motivos convincentes para definir as propriedades são listados no participante deste tópico).

As propriedades são como os campos inteligentes.Em geral, uma propriedade tem um membro de dados privados acompanhado de funções de acessor e é acessada sintaticamente sistema autônomo um campo de uma classe.(Embora propriedades podem ter diferentes níveis de acesso, a discussão aqui se concentra no caso mais comum de acesso público.) Porque propriedades foram disponível em várias edições do Visual Basic, os programadores de Visual Basic talvez queira pular este tópico.

Uma definição de propriedade geralmente consiste em duas partes a seguintes:

  • Definição de um particular membro de dados.

    private int number = 0;
    
    Private number As Integer = 0
    
  • Definição de uma propriedade pública usando a sintaxe de declaração de propriedade.Essa sintaxe associa o membro de dados particular uma propriedade pública por meio de obter and conjunto acessador funções.

    public int MyNumber 
    {
    // Retrieves the number data member.
    get 
       { 
          return number; 
       }
    // Assigns to the number data member.
    set 
       { 
          number = value;
       }
    }
    
    Public Property MyNumber As Integer
       ' Retrieves number.
       Get 
          Return number
       End Get
       ' Assigns to number.
       Set 
          number = value
       End Set
    End Property
    

O termo valor é uma palavra-chave na sintaxe para a definição de propriedade.A variável valor é atribuído à propriedade no código de chamada.O tipo de valor deve ser o mesmo sistema autônomo o tipo declarado da propriedade ao qual está atribuída.

Enquanto uma definição de propriedade geralmente inclui um membro de dados particular, isso não é necessário.The obter acessador poderia retornar um valor sem acesso a um membro de dados particulares.Um exemplo é uma propriedade cujo obter método retorna a time do sistema.Propriedades permitem que os dados, ocultando, o acessador métodos ocultar a implementação da propriedade.

Existem algumas diferenças na sintaxe da propriedade entre diferentes linguagens de programação.Por exemplo, a propriedade termo não é uma palavra-chave na translation from VPE for Csharp, mas é uma palavra-chave no Visual Basic.Para obter informações específicas do linguagem, consulte a documentação para o linguagem,

O exemplo a seguir define uma propriedade chamada MyNumber na classe SimpleProperty e acessos MyNumber da classe UsesSimpleProperty.

public class SimpleProperty 
{
   private int number = 0;
   public int MyNumber 
   {
   // Retrieves the data member number.
   get 
      { 
         return number; 
      }
   // Assigns to the data member number.
   set 
      { 
         number = value;
      }
   } 
// Other members.
}
public class UsesSimpleProperty
{
   public static void Main()
   {
      SimpleProperty example = new SimpleProperty();
// Sets the property.
      example.MyNumber = 5;
// Gets the property.
      int anumber = example.MyNumber;
   }
}
Public Class SimpleProperty 
    Private number As Integer = 0

    Public Property MyNumber As Integer
        ' Retrieves number.
        Get 
            Return number
        End Get
        ' Assigns to number.
        Set 
            number = value
        End Set
    End Property    

' Other members...
End Class

Public Class UsesSimpleProperty
    Public Shared Sub Main()
        Dim example As New SimpleProperty()
        ' Sets the property.
        example.MyNumber = 5
        ' Gets the property.
        Dim anumber As Integer = example.MyNumber
    End Sub
End Class

The obter and conjunto métodos geralmente não são diferentes de outros métodos.Eles podem executar qualquer programa lógica, lançar exceções, ser substituída e ser declarados com qualquer modificadores permitidos pela linguagem de programação.No entanto, observe que as propriedades também podem ser estático.Se uma propriedade é estático, há limitações quanto à qual o obter and conjunto métodos podem ser feito.Consulte sua referência de linguagem de programação para obter detalhes.

O tipo de uma propriedade pode ser um tipo primitivo, uma coleção de tipos primitivos, um tipo definido pelo usuário ou uma coleção de tipos definidos pelo usuário.Para todos os tipos primitivos, o .NET estrutura fornece conversores de tipo que implementam as conversões de seqüência de caracteres-valor.Para obter detalhes, consulte Conversão de tipo generalizado.Quando um conversor de tipo está disponível para uma propriedade, ele pode ser exibido no navegador da propriedade no designer.Se você definir propriedades personalizadas e deseja que o navegador de propriedade para exibi-las, você deve implementar conversores de tipo personalizado.

Quando o tipo de dados de uma propriedade é uma enumeração, um ambiente de desenvolvimento sistema autônomo o Microsoft Visual Studio exibe a propriedade sistema autônomo uma lista suspensa na janela Propriedades.Se o tipo de dados de uma propriedade é uma classe que tem propriedades, essas propriedades são chamadas subproperties da definição de propriedade.Na janela Propriedades no Visual Studio, um usuário pode expandir uma propriedade para exibir seus subproperties.

É importante adicionar atributos a propriedades, para que eles sejam exibidos corretamente no navegador de propriedade em time de design.Para obter detalhes, consulte Atributos de time de design para componentes.

Você deve expor propriedades ao invés de campos públicos de seus componentes, porque propriedades podem ser feita a versão, permitem ocultar dados e os métodos acessadores podem executar lógica adicional.Em geral, por causa das otimizações just-in-time, propriedades são não mais caros que os campos.

Consulte também

Conceitos

Atributos de time de design para componentes