交换机情况下的代码优化.NET

时间:2012-08-01 08:45:09

标签: c# .net switch-statement

我在C#.NET中编写了一段糟糕的代码,我希望对其进行优化。

目前我能想到的是将公共部分分成单独的方法。

代码:

if(condition1)
{     
   switch(condition)
       case 'A' :   //Some code
        break;
       case 'B' :   //Some code
        break;
       case 'C' :   //Some code
        break;
}

else if(condition2)
{     
   switch(condition)
       case 'a' :   //Some code
        break;
       case 'B' :   //Some code
        break;
       case 'C' :   //Some code
        break;
}

请注意,案例“B”和案例“C”的案例陈述条件很常见。

非常感谢任何有关改进代码的帮助。

4 个答案:

答案 0 :(得分:2)

如果他们的代码块应该执行相同的代码,为什么不堆叠case语句

喜欢这个

case 'B' :
case 'C' :
{
//Do Some Code
}
break;

答案 1 :(得分:1)

您所能做的就是将公共代码放在一起并检查其中的附加条件。

switch(condition)
{
   case 'A':
     if(condition1) //do something
     else //do something
     break;

  case 'a':
   same as above

  case 'B':
    break;

  case 'C':
    break;
}

答案 2 :(得分:1)

case "a":
case "A":
    if ( condition1) {
        ...
    }
    else if { condition2}
        ...
    }
    break;

答案 3 :(得分:1)

我认为即使您优化了这段代码,它仍然会非常脆弱且难以维护。我建议尝试使用策略模式来重构它(例如,如果它可能的话)。

您将受益匪浅,因为您将每个例行程序隔离开来并以OOP方式执行,以便将来更容易更改和维护。