为auto属性设置的默认值不起作用

时间:2017-04-25 09:27:51

标签: c# windows winforms

我创建了一个如下所示的属性,并且指定的默认值不起作用。

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

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

有人可以澄清一下吗?

此致

2 个答案:

答案 0 :(得分:2)

如果您使用的是c#6.0,则可以使用它来设置默认属性值:

<div class="v3-multiselect" uib-dropdown ng-cloak auto-close="outsideClick" is-open="isOpen">
  <a href="#" class="dropdown-toggle v3-multiselect-toggle" uib-dropdown-toggle>
  <b>{{ optionLabel }}:</b> Max {{ max }}
  </a>
  <span class="v3-caret-more pull-right"></span>
  <ul class="dropdown-menu" uib-dropdown-menu role="menu">
 <li  ng-click="toggleOption(option['id']); " ng-repeat="option in opt ions track by option['id']" class="v3-multiselect-option" ng-class="{checked: isChecked(option['id'])}">
     <label>{{ option.name }}</label>
  </li>
</ul>

答案 1 :(得分: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;