switch case 大量 解决方案
发现程序中有很多的 case语句
感觉这个样子增加了很多无用的判断 真正要的只有一个 
如何减少这些无用的case 不知道可以直接用goto能实现么 goto后面的是标签 传递过来的是变量 关联不起来
不知道还有别的解决方案么 可以直达自己用的语句中去

解决方案 »

  1.   

    把命中可能较大的case排在前面,每个case最后都加上break,这样在一定程度上可以提高效率。不宜用goto,其破坏结构。
      

  2.   

    2楼是正解lz本身视乎陷入那个“高效”滴坑了既然代码里出现switch,那就表明此处会有多种情况,ok,他出现在这里他是合理的如果只会有一种情况,他出现在这里是不合理滴,你才应该去掉他不能因噎废食,不能说为了“高效”就不讲究代码合理性。我一向跟我手下人说:“所谓优化,是保证合理性并且有可以优化的必要才优化,你不能无端的去优化”
      

  3.   

    switch case 
    if else你想做判断 你可以找第三种方法但如果你能更简单的操作的话
      

  4.   

    如果非要去优化,你可以采用表驱动法比如把东西放入一个字典类,一个key对应一个value
    这样你知道key就可以取得value但是,实际上就算是字典类,你认为他内部根据key,提取数据的过程,难道不用循环和判定??
      

  5.   

    这个只能去优化你的数据结构及算法吧
    合理case怎么去掉,即使是小概率
      

  6.   

    如果要执行的方法都差不多的话,可以用委托!http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx
      

  7.   

    C#中没有goto语句,case大概率放前面,执行后就不会继续执行后面的case了
      

  8.   

    switch case 如果真的很大量的话(比如你要switch用户敲的键),确实效率很低,它只能顺序执行。用Dictionary<string, Delegate>要好的多