将开关块放在另一个开关块中是否正确?

时间:2013-09-26 11:24:08

标签: c# web-services optimization switch-statement

我将从一个方法中提供一段代码,我正在尝试处理来自Web服务的命令/值。

 switch (cmdName)
 {
     case "getShapefile":

         switch (cmdValue)
         {
             case "buildings":
                 HandleShapeFile(ref shapfile);
                 break;
         }

     break;
 }

这个想法是下一个:

  • 我有几个命令(大约7个,例如get {X-Object})
  • 每个命令也有大约10个值,因此操作次数为:70,它们是不同的。

如何更好地处理价值观并制定出这样一个目标的精美设计?

2 个答案:

答案 0 :(得分:2)

我可能会为7中的每一个使用方法。

 switch (cmdName)
 {
     case "getShapefile":
        HandleShapeFiles( cmdValue ); 
     break;
 }

然后在方法中有第二个case语句。

所以这个想法是7个方法,每个方法都有自己的10个选项的case语句。

答案 1 :(得分:1)

您可以将开关弄平,这样您就不需要多个开关块了。

switch(cmdName + "-" + cmdValue)
{
    case "getShapefile-buildings":
        HandleShapeFile(ref shapfile);
    break;
}