If...Else转换为Action的写法

日常代码If..Else是最平常、基本而且经常使用的控制结构。这种控制逻辑在只有一层判断的情况下非常简洁而且可读性强。例如以下例子:
if (表达式为True)
{
  //执行相关语句
}
else
{
  //执行相关语句
}

但有些情况下If...Else里会多重嵌套If...Else,这样会大大降低可读性。例如以下例子:
if (表达式1为True)
{
  //执行相关语句
}
else
{
  if (表达式2为True)
  {
    //执行相关语句
  }
  else
  {
    //执行相关语句
  }
}
可以使用System.Action改写以上If...Else语句增加可读性。在具体方法如下:
System.Action TestAction= delegate ()
{
  if (表达式1为True)
  {
    //执行相关语句
    return;
  }
  if(表达式2为True的情况)
  {
    //执行相关语句
    return;
  }
  if(表达式2为False的情况)
  {
    //执行相关语句
    return;
  }
};
TestAction();
现在复杂的多重If...Else结构已经变成简单的多个If条件并列语句。可读性大大增加。并且还多了一个好处:这种封装令原本的If...Else结构变为函数内部的函数。该函数可以在父函数体中重复调用减少重复代码

posted @ 2017-07-20 11:20  Matrix博客园  阅读(442)  评论(0编辑  收藏  举报