反正有没有隐含地执行以下模式?
[DefaultValue(true)]
public bool SomeBooleanProperty { get; set; } = true;
Run Code Online (Sandbox Code Playgroud)
在两个地方重复默认值似乎只是在某处乞求错误,无论如何似乎都是多余的.我可以想象一些将DefaultValueAttribute自动设置为默认值(或任何值)的情况是不可取的,但我认为这些将是例外而不是规则.在这些情况下,解决方案只是在构造函数中设置默认值,而不是在我认为比冗余代码更轻松的声明中.
MSDN对DefaultValueAttribute说了这个
DefaultValueAttribute不会导致使用属性的值自动初始化成员.您必须在代码中设置初始值.
该文章建议做这样的事情,以避免重复的代码
static public void ApplyDefaultValues(object self)
{
foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(self)) {
DefaultValueAttribute attr = prop.Attributes[typeof(DefaultValueAttribute)] as DefaultValueAttribute;
if (attr == null) continue;
prop.SetValue(self, attr.Value);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |