如何声明枚举属性的默认值?
如何设置枚举属性的默认值?
例如:
public enum SearchBoxMode { Instant, Regular };
[DefaultValue(SearchBoxMode.Instant)]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
[DefaultValue((int)SearchBoxMode.Instant)]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
[DefaultValue(SearchBoxMode.GetType(), "Instant")]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
[DefaultValue(SearchBoxMode.GetType(), "SearchBoxMode.Instant")]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
不相关的问题:如何获取枚举的类型?例如
Type type = DialogResult.GetType();
不起作用。
How do i set the default value of an enumerated property?
e.g.:
public enum SearchBoxMode { Instant, Regular };
[DefaultValue(SearchBoxMode.Instant)]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
[DefaultValue((int)SearchBoxMode.Instant)]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
[DefaultValue(SearchBoxMode.GetType(), "Instant")]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
[DefaultValue(SearchBoxMode.GetType(), "SearchBoxMode.Instant")]
public SearchBoxMode Mode { get { return mode; } set { mode = value; } }
Unrelated question: How do i get the Type
of an enumeration? e.g.
Type type = DialogResult.GetType();
does not work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
枚举的默认值是底层类型的 0,即使没有为该枚举定义 0。其他任何操作都必须手动完成,例如:
使用
[DefaultValue(...)]
只会影响序列化和PropertyGrid
等内容 - 它实际上不会使属性成为默认值到那个值。正确的语法与您的第一个示例相同:另一种方法是构造函数:
重新回答第二个问题;
typeof(DialogResult)
The default value of an enum is 0 of the underyling type, even if 0 isn't defined for that enum. Anything else must be done manually, for example:
Using
[DefaultValue(...)]
only impacts things like serialization andPropertyGrid
- it doesn't actually make the property default to that value. The correct syntax is as per your first example:Another approach is a constructor:
re the second question;
typeof(DialogResult)