我很難搞清楚如何構造這個。覆蓋臨時對象的屬性?
我有一個類VehicleState
與特性,包括passengers
:
public class VehicleState
{
public int _temp_passengers;
public int _passengers;
public int passengers
{
set { _temp_passengers = value; }
get { return _passengers; }
}
public void CommitState()
{
_passengers = _temp_passengers;
}
}
有一個循環,激發每X秒。每個車輛都會影響模擬中的另一輛車爲了避免每個車輛影響其他車輛時破壞屬性,我將它們存儲在一個臨時區域內,例如, _passengers
。臨時值在循環結束時被提交給常規值。
的問題是以下內容:
成爲:
_temp_passengers = _passengers - 1;
編輯:
爲了進一步解釋這一問題,想象10對車輛影響車輛甲,乘客增加1.每個乘客離開他們的車輛上車A.
所以操作passengers += 1
將被稱爲10次,但它會像操作只是被稱爲一次!
有一個設計模式來解決這個問題?
我可以像這樣在類中包裝每個屬性嗎?
我可以在
set{}
內添加+=
和-=
條件嗎?
任何想法?謝謝! :)
你在此刻得到了一個更大的問題 - 如果你* *獲取您的'乘客'的財產,它會炸燬,因爲它永遠遞歸... –
但基本上,你只有一個領域 - 當然你需要*兩個*領域,一個e「臨時」價值,一個用於「承諾」價值。 –
這是一輛普通的家用車,載着2.34名乘客(或者:你爲什麼使用'浮動')? – CodeCaster