Share via


Automático-Implementadas Propriedades (guia de programação C#)

No C# 3.0 e posterior, implementado em auto propriedades fazem declaração de propriedade mais concisa quando nenhuma lógica adicional é necessária nos acessadores de propriedade. Elas também permitem criar objetos de código do cliente. Quando você declara uma propriedade, conforme mostrado no exemplo a seguir, o compilador cria um campo de apoio particular e anônimo que só pode ser acessado através da propriedade get e set acessadores.

Exemplo

O exemplo a seguir mostra uma classe simples que tem algumas propriedades de auto-implementada:


// This class is mutable. Its data can be modified from
// outside the class.
class Customer
{
    // Auto-Impl Properties for trivial get and set
    public double TotalPurchases { get; set; }
    public string Name { get; set; }
    public int CustomerID { get; set; }

    // Constructor
    public Customer(double purchases, string name, int ID)
    {
        TotalPurchases = purchases;
        Name = name;
        CustomerID = ID;
    }
    // Methods
    public string GetContactInfo() {return "ContactInfo";}
    public string GetTransactionHistory() {return "History";}

    // .. Additional methods, events, etc.
}

class Program
{
    static void Main()
    {
        // Intialize a new object.
        Customer cust1 = new Customer ( 4987.63, "Northwind",90108 );

        //Modify a property
        cust1.TotalPurchases += 499.99;
    }
}

A classe que é mostrada no exemplo anterior é mutável. Código do cliente pode alterar os valores de objetos depois que forem criados. Em classes complexas que contêm o comportamento significativo (métodos), bem como dados, geralmente é necessário ter propriedades públicas. No entanto, para pequenas classes ou estruturas que basta encapsulam um conjunto de valores (dados) e têm pouca ou nenhuma de comportamentos, é recomendável para tornar os objetos imutáveis, declarando o acessador set como particular. Para obter mais informações, consulte How to: Implementar uma classe leve com Automático-implementado Propriedades (guia de programação C#).

Atributos são permitidos nas propriedades de auto-implementado, mas, obviamente, não em campos de backup, pois esses não são acessíveis a partir de seu código-fonte. Se você deve usar um atributo no campo de uma propriedade de backup, basta crie uma propriedade regular.

Consulte também

Referência

Properties (C# Programming Guide)

Modifiers (C# Reference)