У меня есть следующее Автоматическое Свойство
[DefaultValue(true)]
public bool RetrieveAllInfo { get; set; }
когда я пытаюсь использовать его в коде, я нахожу, что ложь по умолчанию для false
Я предполагаю, что это - значение по умолчанию к a bool
переменная, делает у любого есть подсказка что не так!?
Атрибут DefaultValue используется только для того, чтобы сообщить конструкторам Visual Studio (например, при проектировании формы), каково значение свойства по умолчанию. В коде он не устанавливает фактическое значение атрибута по умолчанию.
Подробнее здесь: http://support.microsoft.com/kb/311339
[DefaultValue]
используется только (например) API сериализации (например, XmlSerializer
) и некоторыми элементами пользовательского интерфейса (например, PropertyGrid
). Оно не устанавливает само значение, для этого нужно использовать конструктор:
public MyType()
{
RetrieveAllInfo = true;
}
или установить поле вручную, т.е. не использовать автоматически реализованное свойство:
private bool retrieveAllInfo = true;
[DefaultValue(true)]
public bool RetrieveAllInfo {
get {return retrieveAllInfo; }
set {retrieveAllInfo = value; }
}