Switch重构处理

摘要:
PublicclassFun{publicvoid IFNumber(int flag){switch(flag)}{case1:Console.WriteLine(“优秀”);break;case2:Console.WriteLine(“良好”)
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;                      
              }
                  }        

免责声明:文章转载自《Switch重构处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android学习笔记——xml解决:efi usb device has been blocked by the current security policy下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java学习第十五章 之 Map、可变参数、Collections

1 /* 2 3 Map:存储键值对 4 5 键不能重复存储,值可以重复 6 7 每一个键对应一个值 8 9 方法: 10 11 v put(K key , V value)将指定的键和值添加到集合中 12 13 v get(Object o...

Android 解析后台返回为Json数据的简单例子

大家好,今天给大家分享下Android解析Json的例子,我这里自己安装了Tomcat,让自己电脑充当下服务器,最重要的是,返回结果自己可以随便修改。 首先看下Json的定义,以及它和XML的比较: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分...

keepalived 配置文件参数详解

global_defs 全局配置vrrpd1. vrrp_script添加一个周期性执行的脚本。脚本的退出状态码会被调用它的所有的VRRP Instance记录。2. vrrp_sync_group将所有相关的VRRP实例定义在一起,作为一个VRRP Group,如果组内的任意一个实例出现问题,都可以实现Failover3. garp_group4. vr...

比NotePad++更好的文本代码(C#)编辑器Sublime Text

前言  前两天在博客园看到@晴天猪的博客发表的关于他使用的代码编辑器,自己索性试了一下,果断好用,自己也来记录一下。以便以后配置使用。接下来我配置的主要是简单的编译C#代码的。 配置一调用C#编译器  我现在电脑的系统为Win7哦。我要将C#编译器的csc.exe文件添加到环境变量中。 首先我的电脑==右键属性==高级系统设置==环境变量==系统变量==变...

Java多线程:向线程传递参数的三种方法

在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别。由于线程的运行和结束是不可预料的,因此,在传递和返回数据时就无法象函数一样通过函数参数和return语句来返回数据。本文就以上原因介绍了几种用于向线程传递数据的方法...

java 类型转换

在java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有Object.toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。方法1:采用 Object.toString()方法请看下面的例子:      Obj...