• 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;                      
                  }
                      }        
  • 相关阅读:
    docker-linux下的部署和基本命令
    Docker——Docker安装Sentinel
    分布式事务
    Git仓库完整迁移
    JWT token过期自动续期解决方案
    ORACLE用户的创建与授只读权
    Arthas-Java的线上问题定位工具
    mysql读写分离
    redis集群搭建-3.0/4.0版本
    相信自己,只要你努力了,你的梦想就可以实现
  • 原文地址:https://www.cnblogs.com/zyj649261718/p/4981488.html
Copyright © 2020-2023  润新知