我很难搞清楚如何构造这个。覆盖临时对象的属性?
我有一个类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