我有一些公共属性的用户控件。一个特定的属性是一个整数,但只能接受小于最大值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
继承)抱怨,如果我试图在设计时(并假定在运行时)设置负值。
如果这实现了正常的异常?或者,还有更好的方法?一个属性可能?
感谢你们俩。我接受了这个,因为它是更完整的答案。 – 2012-02-04 13:29:14