Как настроить Авто Свойства в C # 3.0 - PullRequest
2 голосов
/ 07 июня 2009

До C # 3.0 мы сделали так:

class SampleClass
{
   private int field;
   public int Property { get { return this.field } set { this.field = value } }
}

Теперь мы делаем это:

class SampleClass
{
   public int Property { get; set; }
}

(Смотри, ма! Без полей!) Теперь, если я хочу настроить Getter или Setter, поле должно быть явным, как в C # 2.0?

Ответы [ 4 ]

7 голосов
/ 07 июня 2009

Да, это единственный способ. Нет ярлыка для настройки (кроме модификаторов доступа).

2 голосов
/ 07 июня 2009

С C # 3.0 и автоматическими свойствами вы все еще можете изменять уровни доступа:

class SampleClass
{
   public int Property { get; private set; }
}
1 голос
/ 07 июня 2009

Да, целью автоматических свойств является предоставление средств для добавления настроек в будущем, не затрагивая существующих пользователей класса. Обычно это означает добавление частного / защищенного вспомогательного поля.

0 голосов
/ 07 июня 2009

Вы также не можете указывать поля только для чтения, используя автоматические свойства, а также не можете использовать инициализаторы переменных (хотя я видел несколько предложенных расширений языка, которые позволили бы это).

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

...