Атрибут DefaultValue не работает с моим Автоматическим Свойством

У меня есть следующее Автоматическое Свойство

[DefaultValue(true)]
public bool RetrieveAllInfo { get; set; }

когда я пытаюсь использовать его в коде, я нахожу, что ложь по умолчанию для false Я предполагаю, что это - значение по умолчанию к a bool переменная, делает у любого есть подсказка что не так!?

20
задан Ahmed Magdy 23 March 2012 в 18:29
поделиться

2 ответа

Атрибут DefaultValue используется только для того, чтобы сообщить конструкторам Visual Studio (например, при проектировании формы), каково значение свойства по умолчанию. В коде он не устанавливает фактическое значение атрибута по умолчанию.

Подробнее здесь: http://support.microsoft.com/kb/311339

33
ответ дан 29 November 2019 в 23:27
поделиться

[DefaultValue] используется только (например) API сериализации (например, XmlSerializer) и некоторыми элементами пользовательского интерфейса (например, PropertyGrid). Оно не устанавливает само значение, для этого нужно использовать конструктор:

public MyType()
{
    RetrieveAllInfo = true;
}

или установить поле вручную, т.е. не использовать автоматически реализованное свойство:

private bool retrieveAllInfo = true;
[DefaultValue(true)]
public bool RetrieveAllInfo {
    get {return retrieveAllInfo; }
    set {retrieveAllInfo = value; }
}
14
ответ дан 29 November 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: