所以,我有:使用+ =和 - =在吸氣運營商/ Dictionary對象的制定者
Dictionary<some_enumerator, int> available_spaces;
Dictionary<some_enumerator, int> occupied_spaces;
Dictionary<some_enumerator, int> total_spaces;
的想法是,我佔據給出類型的空間,我可以標記有多少空間類型X被佔用,並在我調用Occupy(enum.space_type)之前檢查以確保有可用空間。
目前,我對被佔領和可用空間簡單的getter/setter方法:
public Dictionary<some_enumerator, int> Occupied_Spaces { get; set; }
public Dictionary<some_enumerator, int> Available_Spaces { get; set; }
public Dictionary<some_enumerator, int> Total_Spaces { get; set; }
理想情況下,我想重新計算每個鍵的可用空間(通過簡單地減去全部槽所佔用的時隙)只要我們稱之爲佔用空間,例如而不是這樣做:
object.Occupied_Spaces[space_type]++;
object.RecalculateSpaces();
我每次修改Occupied_Spaces時間
,我想,而不是像做(我知道這是不行的,但你的想法:
public Dictionary<some_enumerator> Occupied_Spaces {
get { return _occupied_spaces; }
set { _occupied_spaces = value; RecalculateSpaces(); }
}
目前,調用Occupied_Spaces [key] ++不會調用佔位空間中的setter(我通過將調試打印到RecalculateSpaces中進行測試,該調試沒有觸發)
但我不知道如何覆蓋+任何其他基本的操作員)對於字典。有沒有簡單的方法來做到這一點?
爲什麼你需要重寫這些運營商?如果你正在使用'int',這些已經被定義並且不能被覆蓋。 – Oded 2013-03-23 19:50:21
'我知道這不起作用 - - 它不起作用?盧斯對我來說OK。 – Oded 2013-03-23 19:51:08
目前,調用Occupied_Spaces [key] ++不會調用佔位空間中的setter(我通過將調試打印到RecalculateSpaces中進行測試,該調試沒有觸發)。 – user462879 2013-03-23 19:55:10