zoukankan      html  css  js  c++  java
  • Switch重构处理

    public class Fun{
            public void IFNumberid(int flag) 
            {
                    switch (flag)
                            {
                                case 1:
                                    Console.WriteLine("优秀");
                                    break;
                                case 2:
                                     Console.WriteLine("良好");
                                      break;
                                case 3:
                                      Console.WriteLine("一般");
                                      break;
                                case 4:
                                      Console.WriteLine("不及格");
                                      break;
                    default:
                                      Console.WriteLine("");
                                      break;
                          } 
            }  

     以上Case里面是一个有序的数字,处理方法见 switch中case如果是有序的话,如何处理

    那么假如我们换成了以下的事例呢?

    public class Fun{
            public void NameResult(String flag) 
            {
                    switch (flag)
                            {
                                case "a":
                                    Console.WriteLine("优秀");
                                    break;
                                case "张三":
                                     Console.WriteLine("良好");
                                      break;
                                case "c":
                                      Console.WriteLine("一般");
                                      break;
                                case "g":
                                      Console.WriteLine("不及格");
                                      break;
                    default:
                                      Console.WriteLine("");
                                      break;
                          }
            }  

    这里的Case并不是一个有序的,那么我们利用数组索引的办法将并不可行,此时,则可以考虑使用Dictionary<Tkey, Tvalue>来实现Switch中Case的替换

    public class Fun{
            public void NameResult(String flag) 
            {
              Dictionary<string, string> cl = new Dictionary<string, string>();
                           cl.Add("a","不及格");
                           cl.Add("张三","良好");
                           cl.Add("c","一般");
                          cl.Add("g","不及格");
             foreach (KeyValuePair<string, string> a in cl)
                      {
                  if(a.key==flag)
                  {
                     Console.WriteLine(a.Value);
                     return ;                                         
                  }
                      }
             Console.WriteLine("");
            }
    }

    另外,很多时候,我们可能根据某个值直接去执行某个方法,这时,采用以上方法也是可行的,

      先声明一个委托

    private delegate void EatDelegate();
         private  void functionOne(){
            Console.WriteLine("优秀");
                                  }
        Dictionary<string, EatDelegate> cl = new Dictionary<string, EatDelegate>();
              cl.Add("a",functionOne);
             foreach (KeyValuePair<string, string> a in cl)
                      {
                  if(a.key==flag)
                  {
                     a.Value();
                    return;                      
                  }
                      }        
  • 相关阅读:
    GitLab CI/CD的官译【原】
    Gearman介绍、原理分析、实践改进
    Golang逃逸分析
    Go 程序是怎样跑起来的
    分布式系统的常见玩法
    开发更高可用、高质量的服务的一些建议
    理解 Kubernetes 的亲和性调度
    服务发现对比:Zookeeper vs etcd vs Consul
    探索etcd,Zookeeper和Consul一致键值数据存储的性能
    CentOS 7 安装无线驱动
  • 原文地址:https://www.cnblogs.com/zyj649261718/p/4981488.html
Copyright © 2011-2022 走看看