C#限制设定值

时间:2017-03-26 07:19:27

标签: c# math properties setter limiting

我目前正在尝试实现属性,特别是限制我的setter。例如,我有一个'Money'浮动字段,我喜欢它,所以你可以添加/减去它的值,但当它在0时,使它不能再减去它,但它仍然可以添加到。

我看到在下面的代码中,一旦'Money'达到0,它将始终停留在0.有没有办法检查是否添加了setter?我知道您可以在AddMoney或SubtractMoney方法中检查它,但如果可以在setter中这样做则更加好奇。

public float Money {
    get {
        return this._money;
    }

    set {

        if (_money <= 0){
            _money = 0;
        } else {
            _money = value;
        }
    }
}
void AddMoney(float addAmount){
    Money += addAmount;
}

void SubtractMoney(float subtractAmount){
    Money -= subtractAmount;
}

1 个答案:

答案 0 :(得分:1)

尝试测试值是否为负值,不要更改Money值:

        set {

                if (value >= 0)
                {
                    _money = value;
                }
                else
                {
                //You may throw exception, or log a warning   
                }
            }