班级的界限

本文关键字:界限 | 更新日期: 2023-09-27 17:49:16

这可能是一个愚蠢的问题,但当我创建一个类,我应该如何设置适当的边界属性在它。

示例:如果我有这个类
class Product
{
    private string name;
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    private int quantity;
    public int Quantity
    {
        get { return quantity; }
        set { quantity = value; }
    }
}

如何将Quantity限制为0或更高

编辑:谢谢你的快速回应,但这两个答案有什么不同?我看到的是,它们都做同样的事情,但哪种方式更好使用?

编辑:例如,如果我希望数量在0和120之间,我如何设置两个边界?

班级的界限

private int quantity;
public int Quantity
{
    get { return quantity; }
    set { if (value < 0 || value>120) throw new ArgumentOutOfRangeException(); 
           else quantity = value; 
    }
}

也可以使用非负范围的int

    private uint quantity;
    public uint Quantity
    {
        get { return quantity; }
        set { quantity = value; }
    }

注意这不是CLS兼容的。因此,如果您正在设计API或期望跨语言功能,那么您应该选择int并使用现有答案之一。