类模型 - 设置默认值

时间:2017-07-19 02:45:23

标签: c#

定义默认值时,

之间有什么区别
[DefaultValue("member")]
public string Role { get; set; }

public string Role { get; set; } = "member";

2 个答案:

答案 0 :(得分:2)

第一个是可用于元编程的属性。例如,如果有人清除输入,您可能想要记住默认值。它与C#语言本身没有没有。它不会修改Role的值。

第二个实际上将属性的值设置为'成员'在记忆中。

答案 1 :(得分:2)

来自the documentation

  

DefaultValueAttribute不会导致使用属性的值自动初始化成员。您必须在代码中设置初始值。

换句话说,您的第一个示例可帮助工具(如Windows窗体设计器)了解属性的预期默认值。但它在运行时没有

如果您希望在运行时为属性分配默认值,则必须自己执行此操作,如您显示的第二个示例所示。