C# 限制属性接受的值范围的正确方法是什么?

C# 限制属性接受的值范围的正确方法是什么?,c#,visual-studio,attributes,properties,design-time,C#,Visual Studio,Attributes,Properties,Design Time,我有一个带有一些公共属性的用户控件。特定属性是整数,但必须只接受小于常量的正值。目前,我做了以下工作: private int markerwidth = 2; [DefaultValue(2), Category("Appearance"), Description("Size of position marker")] public int MarkerWidth { get { return this.markerwidth; } set

我有一个带有一些公共属性的用户控件。特定属性是整数,但必须只接受小于常量的正值。目前,我做了以下工作:

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;
        }
    }
}
private int markerwidth=2;
[默认值(2)、类别(“外观”)、说明(“位置标记的大小”)]
公共整数标记宽度
{
得到
{
返回此.markerwidth;
}
设置
{

如果(value>0&&value最理想的方法是通过异常实现。只需继续您的代码

    if (value > 0 && value <= MAXMARKERWIDTH)
    {
        this.markerwidth = value;
    }
    else 
    {
        throw new ArgumentOutOfRangeException("Invalid value. Value must be between 0 and " + MAXMARKERWIDTH.ToString());
    }

如果(value>0&&value有一个内置的
ArgumentOutOfRangeException
,我想它适合这里。

感谢你们两位。我接受了这个答案,因为它是更完整的答案。