【发布时间】:2015-12-09 03:46:18
【问题描述】:
是否可以仅通过一个相关属性默认多个值? 我发现逐行设置有点笨拙。
public class FooBarCounter{
[Key]
public int id{ get; set; }
[DefaultValue(0)]
public int FooCounter1 { get; private set; }
[DefaultValue(0)]
public int FooCounter2 { get; private set; }
[DefaultValue(5)]
public int BarCounter1 { get; private set; }
[DefaultValue(5)]
public int BarCounter2 { get; private set; }
}
编辑:
所以 [Attrib] 每隔一行出现一次,我宁愿这样:
[Authorize]
public class MyFullyAuthorizedClass : Controller {
//props, methoods etcetc
}
这里的 [Authorize] 会影响整个班级,就像我将它放在每个方法之前一样,现在这也不是最好的,因为我有多个默认值,但它只有 1 行,而不是每个第二行中的锅炉。希望我现在更清楚了。
有什么想法吗?
【问题讨论】:
-
“一个相关属性”是什么意思?
-
afaik,你需要构造一个实例。如果您希望 int 为 0,则不需要该属性。但是如果你想为各种属性设置不同的值,你将不得不一个一个地去做。如果您正在寻找一个可以一次性更改所有值的地方,那么 Perttu 的答案将成立。另外我想提一下,如果你不喜欢属性,你可以使用 c# 6 的属性初始化器。
-
我不完全确定问了什么;问题标题是“多个属性的默认值”,我试图回答。
-
我的意思是你可以在类定义之前定义 [Authorize],它会影响整个类。我的观点是,在一个更大的类中,我可以将它们一起定义,所以我不需要在每一行都有 [DefaultValue(x)]。
-
您是否考虑过在构造函数中设置默认值而不是属性?
标签: c# entity-framework attributes default-value