c# - 有没有办法避免方法重复调用?

标签 c# .net

我正在构建一个游戏,其中多个方法链接到其他方法并且需要在幕后调用。例如,当一名士兵需要离开城堡时,需要打开大门,然后在他离开后立即关闭:

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/

相关文章:

c# - 当客户端甚至无法连接到 WCF 服务器时,为什么会出现 "server stack trace"异常?

c# - 异步 CTP - 任务超时问题

.net - Azure 部署中心在部署时生成错误

c# - SectionInformation.ProtectSection 有多安全?

c# - 我应该如何构建数据驱动的 Win 表单解决方案?

c# - 查找 2 个巨大区域(文本)文件之间的变化

c# - 在Hashtable中打印的顺序?

c# - 如何在 DataSet 中设置单元格?帮助!

c# - 通过 TCP 接收数据 : MemoryStream contains more data than expected

c# - 我应该如何使用 ViewModel?