2017-04-25 62 views
0

我创建了如下的属性,并且指定的默认值不起作用。为自动属性设置的默认值不起作用

[DefaultValue(100)] 
public int MyProperty 
{ 
    get; 
    set; 
} 

但属性不返回指定的默认值,而是返回“O”

任何人都可以请澄清我吗?

问候,

+0

按照此链接:http://stackoverflow.com/questions/40730/how-do-you-give-ac-sharp-auto-property-a-default-value – Kingsman

回答

1

您使用的是DefaultValue属性。

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

https://msdn.microsoft.com/en-us/library/system.componentmodel.defaultvalueattribute(v=vs.110).aspx

在C#5以下的,给予属性的默认值,你必须做它在构造函数中。

public class MyClass 
{ 
    public MyClass() { 
     MyProperty = 100; 
    } 

    public int MyProperty {get; set;} 
} 

在C#版本6(及以上),你可以这样做:

public int MyProperty { get; set; } = 100; 
1

如果您正在使用C#6.0,你可以用它来设置默认属性值:

public int MyProperty { get; set; } = 100; 
+0

有没有必要张贴我的答案 – Alex

+0

当我发布时,你的回答只有关于DefaultValue属性的信息。 – barzozwierz