我正在构建一个游戏,其中多个方法链接到其他方法并且需要在幕后调用。例如,当一名士兵需要离开城堡时,需要打开大门,然后在他离开后立即关闭:
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);
}
}
关于c# - 有没有办法避免方法重复调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422302/