0

我目前正在尝试实现属性,特别是限制我的设置器。例如,我有一个我想要的 '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;
}
4

1 回答 1

1

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

        set {

                if (value >= 0)
                {
                    _money = value;
                }
                else
                {
                //You may throw exception, or log a warning   
                }
            }
于 2017-03-26T07:36:33.040 回答