This article has been localized into Russian by the community.
Автоматические свойства
Настоящая боль в шее для всех программистов, пишущих объектно-ориентированный код, всегда объявление открытых свойств для всех личных полей. С этим множество утомительной работы особенно потому, что почти все свойства будут простым отображением get и set в частное поле, без добавления чего-либо умного, как это:
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
С помощью такого простого свойства мы могли бы объявить поле public и использовать его напрямую вместо добавления дополнительного слоя свойства. Тем не менее, руководящие принципы ООП велят нам, сделать это таким образом, и большинство из нас сопротивляется искушению делать это легкий путь. С c # 3.0 нам больше не придется сталкиваться с этой дилеммой! Приведенный выше пример теперь можно записать следующим образом:
public string Name
{
get;
set;
}
Или, используя меньшее текста, как здесь:
public string Name { get; set; }
Нет объявления поля и нет кода для получения и установки значения поля. Все это автоматически обрабатывается компилятором, который автоматически создает закрытое поле и заполняет метод get и set базовым кодом, необходимым для чтения и записи поля. Снаружи это будет выглядеть как обычное свойство, но вы сохранили много дополнительных нажатий клавиш, и ваш класс будет менее раздутым. Конечно, вы все еще можете использовать старый способ, как показано в нашем первом примере - это просто Дополнительная функция, которую вы можете использовать, если вам это нравится.