logo search
CSharp_Prog_Guide

Автоматически реализуемые свойства

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

Пример

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

class LightweightCustomer

{

public double TotalPurchases { get; set; }

public string Name { get; private set; } // read-only

public int CustomerID { get; private set; } // read-only

}

Автоматически реализуемые свойства должны объявлять оба метода доступа — get и set. Чтобы создать автоматически реализуемое свойство readonly, задайте ему закрытый метод доступа set.

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

How to: Implement a Lightweight Class with Auto-Implemented Properties

This example shows how to create a lightweight class that serves only to encapsulate a set of auto-implemented properties. Use this kind of construct instead of a struct when you must use reference type semantics.

Example

public class Contact

{

public string Name { get; set; }

public string Address { get; set; }

public int ContactNumber { get; set; }

public int ID { get; private set; } // readonly

}

The compiler creates backing fields for each auto-implemented property. The fields are not accessible directly from source code.