C# Ограничивающее значение установщика

В настоящее время я пытаюсь реализовать свойства и, в частности, ограничить мой установщик. Например, у меня есть плавающее поле "Деньги", которое мне бы понравилось, чтобы вы могли добавлять / вычитать значения к нему, но когда оно равно 0, сделайте так, чтобы оно больше не могло быть вычтено, но, тем не менее, его можно добавить.

Я вижу, что в приведенном ниже коде, когда "Money" достигает 0, он всегда застревает на 0. Есть ли способ проверить, добавляется ли сеттер? Я понимаю, что вы можете проверить это в методах AddMoney или SubtractMoney, но было более любопытно, если это возможно сделать в установщике.

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 ответ

Решение

Попробуйте проверить, является ли значение отрицательным, не меняйте Money значение:

        set {

                if (value >= 0)
                {
                    _money = value;
                }
                else
                {
                //You may throw exception, or log a warning   
                }
            }
Другие вопросы по тегам