Автоматические свойства

Если необходимо создать свойства для инкапсуляции резервных полей, то в С# есть упрощенный синтаксис, называемый автоматически реализуемыми свойствами (Automatically Implemented Properties, AIP). Приведу пример для свойства Name:

public sealed class Employee {   
// Это свойство является автоматически реализуемым  
  public String Name { get; set; }
  private Int32 m_Age;  
  public Int32 Age {
    get { return(m_Age); }    
    set {       
      if (value < 0) // value всегда идентифицирует новое значение
         throw new ArgumentOutOfRangeException("value", value.ToString(),
           "The value must be greater than or equal to 0");      m_Age = value;
    }
  }
}

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

Стоит учтывать, что нельзя создать автоматическое свойство только для записи, как в случае со стандартными свойствами.

results matching ""

    No results matching ""