【发布时间】:2012-02-04 13:03:58
【问题描述】:
我有一个带有一些公共属性的用户控件。特定属性是整数,但只能接受小于const 最大值的正值。目前我做以下事情:
private int markerwidth = 2;
[DefaultValue(2), Category("Appearance"), Description("Size of position marker")]
public int MarkerWidth
{
get
{
return this.markerwidth;
}
set
{
if (value > 0 && value <= MAXMARKERWIDTH)
{
this.markerwidth = value;
}
}
}
这完成了工作,但默默地失败了。我想我可以添加逻辑以将 0 用于负值,将最大值用于超过它的值,但这仍然不理想。
相比之下,如果我尝试在设计时(可能是在运行时)设置负值,TabValue 属性(继承自 UserControl)会报错。
如果这是通过正常异常实现的?或者,还有更好的方法?也许是一个属性?
【问题讨论】:
标签: c# visual-studio attributes properties design-time