2017-03-26 93 views
0

我目前正在嘗試實現屬性,特別是限制我的setter。例如,我有一個'Money'浮動字段,我喜歡它,所以你可以添加/減去它的值,但是當它在0時使它不能被減去,但它仍然可以被添加到。C#限制設置值

我在下面的代碼中看到,一旦'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

您可以檢查'value'爲負... –

+1

方請注意:我強烈懷疑你的任務期望你將驗證放在其他地方而不是二傳手...... –

+1

永遠永遠永遠永遠永遠永遠永遠永遠永遠不會永遠不會在浮游物中存錢。使用十進制 –

回答

1

嘗試測試,如果該值爲負不改變Money值:

 set { 

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