C# 限制 setter 值

C# Limiting setter value

我目前正在尝试实现属性,特别是限制我的 setter。例如,我有一个 'Money' 浮点字段,我喜欢它,所以你可以给它 add/subtract 值,但是当它为 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;
}

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

        set {

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