c# - 如何验证属性值?

标签 c# oop validation properties

我有一个问题。我如何验证我的特性价格为正数,否则抛出一个新的异常。

我已经试过了,但还是不行:

public decimal Price
{
    get
    {
        { return this.price; }
    }
    set
    {
        if (this.price < 0)
        {
            throw new ArgumentException("The price should be positive!");
        }
        else
        {
            this.price = value;
        }

    }
}

最佳答案

现在我明白了,您正在检查属性 setter 中的支持字段,该字段具有最后一个值或默认值0(如果尚未初始化)。使用value相反:

private decimal price;
public decimal Price
{
    get
    {
        { return this.price; }
    }
    set
    {
        if (value < 0)
        {
            throw new ArgumentException("The price should be positive!");
        }
        else
        {
            this.price = value;
        }
    }
}

关于c# - 如何验证属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426344/

相关文章:

javascript - NodeJS - 解析 JSON(仅字符串或数字)

c# - 如何在本地机器上测试azure工作角色?

c# - 我如何(正确地)从 EWS 继承类,例如约会?

javascript - Joi 验证 : Capture the value passed in Custom Error Message

java - 从子类引用静态方法是不好的做法吗?

python - 在python中覆盖@classmethods的__str__方法

Java参数验证,文件存在,可以读取并且是常规文件

c# - 如何创建 mysql 更新查询以在 c#.net windows 应用程序的一条语句中更新多行

c# - 使用 "startup applications"在 Ubuntu 中启动时运行 Mono App

python - python中的OOP编程