gpt4 book ai didi

c# - C# 中是否有任何方法可以自动为设置了默认值的属性设置 DefaultValueAttribute?

转载 作者:行者123 更新时间:2023-12-04 00:33:45 26 4
gpt4 key购买 nike

是否有隐式执行以下模式的方法?

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

在两个位置重复默认值似乎只是在某个地方乞求错误,并且在任何情况下都显得非常多余。我可以想象在某些情况下,将 DefaultValueAttribute 自动设置为默认值(或任何值)是不可取的,但我认为这些只是异常(exception)而不是规则。在这些情况下,解决方案只是在构造函数中设置默认值,而不是在声明中设置默认值,我认为这比冗余代码负担更轻。

最佳答案

MSDN 是这样描述 DefaultValueAttribute

A DefaultValueAttribute will not cause a member to be automatically initialized with the attribute's value. You must set the initial value in your code.

This文章建议这样做以避免重复代码

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);
}
}

关于c# - C# 中是否有任何方法可以自动为设置了默认值的属性设置 DefaultValueAttribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44363292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com