我正在构建一个游戏,其中几种方法相互关联,需要在后台调用。例如,当士兵需要离开城堡时,需要在他离开后立即打开然后关闭门:
public void MoveTheGate(bool openTheGate)
{
if (openTheGate)
{
// code for: open the gate
}
else
{
// code for: close the gate
}
}
public void GetOutOfTheCastle()
{
MoveTheGate(true);
// code for: get out of the castle
MoveTheGate(false);
}
当来自另一个王国的信使到达城堡时,也是如此,必须在信使进入城堡的开始和结束时调用
MoveTheGate()
方法。有没有更精致的方法来实现这一目标?
最佳答案
你可以做
OpenGate(()=>
{ stuff to do with gate open }
);
OpenGate在哪里
public void OpenGate(Action action)
{
try
{
MoveTheGate(true);
action();
}
finally
{
MoveTheGate(false);
}
}