C # Как установить значение по умолчанию для автоматических свойств? - PullRequest
5 голосов
/ 04 мая 2011

У меня есть интерфейс и класс, реализующий этот интерфейс:

public interface IWhatever {
   bool Value { get; set;}
}

public class Whatever : IWhatever {
   public bool Value { get; set; }
}

Теперь C# позволяет Value иметь какое-либо значение по умолчанию без использования какого-либо вспомогательного поля?

Ответы [ 6 ]

13 голосов
/ 04 мая 2011

Обновление

Начиная с C # 6 (VS2015) этот синтаксис совершенно действителен

public bool Value { get; set; } = true;

, так как устанавливает значение для свойства только для чтения

public bool Value { get; } = true;

Старый, предварительный ответ C # 6

Оповещение о спойлере для людей возбудимого характера : Следующий код не будет работать

Вы спрашиваете: «Могу ли я это сделать?»

public bool Value { get; set; } = true;

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

2 голосов
/ 04 мая 2011

Если за этим ничего нет, по умолчанию используется значение false, как указано в документации.

Однако, если вы хотите, чтобы его экземпляр создавался с начальным значением , отличным от false,Вы можете сделать это следующим образом:

public interface IWhatever 
{
   bool Value { get; set;}
}

public class Whatever : IWhatever 
{
    public bool Value { get; set; }

    public Whatever()
    { 
        Value = true;
    }
}
1 голос
/ 04 мая 2011

Значением по умолчанию сейчас является false. Чтобы сделать это true, установите его в конструкторе.

public class Whatever : IWhatever 
{
   public bool Value { get; set; }
   public Whatever()
   {
       this.Value = true;
   }
}
0 голосов
/ 04 мая 2011

Вы можете установить значение по умолчанию в конструкторе.

//constructor
public Whatever()
{
   Value = true;
}

public bool Value { get; set; }

Кстати - с автоматическими свойствами у вас все еще есть поле поддержки, оно просто генерируется для вас компилятором (синтаксический сахар ).

0 голосов
/ 04 мая 2011

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

0 голосов
/ 04 мая 2011

По умолчанию Value будет false, но его можно инициализировать в конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...