2017-07-19 117 views
0

当定义默认值,是什么类模型 - 设置默认值

[DefaultValue("member")] 
public string Role { get; set; } 

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

回答

2

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

第二个实际上将该属性的值设置为内存中的'成员'。

2

the documentation

甲DefaultValueAttribute不会造成构件与该属性的值被自动初始化。您必须在代码中设置初始值。

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

如果您希望在运行时为某个属性分配一个默认值,则必须自己执行该操作,就像在第二个示例中所展示的那样。