Поделиться через


Автоматически реализуемые свойства (Руководство по программированию на C#)

В языке C# 3.0 и более поздних версиях автоматически реализуемые свойства способствуют более лаконичному объявлению свойств, если в методах доступа не требуется дополнительная логика. Они также поддерживают создание объектов клиентским кодом. При объявлении свойства, как показано в следующем примере, компилятор создает закрытое анонимное резервное поле, которое доступно только с помощью методов get и set свойства.

Пример

В следующем примере показан простой класс, имеющий несколько автоматически реализуемых свойств:


// 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;
    }
}

Класс, показанный в предыдущем примере, является изменяемым. Значения объектов после их создания могут изменяться клиентским кодом. В сложных классах, поддерживающих значительные возможности (методы) и содержащие данные, часто необходимо определять закрытые свойства. Однако в случае небольших классов или структур, которые лишь инкапсулируют набор значений (данных) и не поддерживают значительных возможностей, рекомендуется использовать неизменяемые объекты, создаваемые посредством объявления метода доступа set с модификатором private. Дополнительные сведения см. в разделе Практическое руководство. Реализация облегченного класса с автоматически реализуемыми свойствами (Руководство по программированию в C#).

Атрибуты разрешены в автоматически реализуемых свойствах, но явно не в резервных полях, так как они недоступны из исходного кода. Если в резервном поле свойства требуется использовать атрибут, просто создайте регулярное свойство.

См. также

Ссылки

Свойства (Руководство по программированию в C#)

Модификаторы (Справочник по C#)