关于重构之Switch的处理【二】
前面写了一个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;
}
}
转载于:https://www.cnblogs.com/wangyong969/archive/2011/01/06/1926940.html
关于重构之Switch的处理【二】相关推荐
- 重构机房收费系统(二)
接上篇<机房收费系统重构(一)> 二.概要设计 完成了用例图,并用结合用例图完善了一下需求分析说明书,忘记是第几次修订需求分析说明书.有了用例图,很自然就进入了概要设计阶段.我认为这一阶段 ...
- 用重构指导Clean Code(二):依恋情结和switch语句
书接上回,我们继续聊如何用重构指导Clean Code. 在Clean Code的3.4节中有这样一段代码(代码清单3-4).(第3章主要讲的是函数,而3.4节讨论的是switch语句.) publi ...
- 关于重构之Switch的处理【一】如果是有序的话,如何处理
今天晚上休息,坐在电脑边,不知道为什么,总感觉心里有很多的想写下来,可不知道该写些什么!突然来了灵感,觉得不如就写点重构相关的什么东西,也回顾一下自己今年一年的历程,2010年年初的时候,刚到公司,某 ...
- 从C语言的角度重构数据结构系列(十二)-C语言判断语法详解(ifswitch)
前言 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战应用系列课程 https://blog.csdn.net/wenyusuran/category_2239261.html ...
- 【前端重构技能天赋】(二)——Javascript、CSS篇
少叙闲言 承接上一篇,这篇是关于JS.CSS的一些优化,相信很多大家都非常了解了,并且实际上也都在这么做,但我想,很多人和我一样,只知道规范这么做,并不太了解到底为啥这么做,到底好处在哪了? Abou ...
- 重构(Refactoring)技巧读书笔记 之二
重构(Refactoring)技巧读书笔记 之二<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of ...
- 环信即时通讯SDK集成——环信 uni-app-demo 升级改造计划——整体代码重构优化(二)
概述 本次关于 uni-app 代码整体重构工作,基于上一期针对 uni-app 官网 demo 从 vue2 迁移 vue3 框架衍生而来,在迁移过程中有明显感知,目前的项目存在的问题为,项目部分代 ...
- C语言实例二(switch——case用法)
switch--case用法 一.switch语句概述 1.C语言中switch语句是用于实现多分支结构的选择语句,其特点是各分支清晰而且直观. 2.语句格式如下: switch(表达式) { ...
- 重构改善代码--代码的坏味道
关于重构的重要目标之一,便是让代码更容易让人阅读和理解.其实,代码的好与坏在一定程度上是一模一样的,至少对计算机而言,能正常工作的代码都不算太坏.但是,代码也必须能让其他人看懂码农的思想世界,这才是重 ...
最新文章
- MVC控件类型-HtmlHelper类
- B站上线斯坦福最新「机器学习系统(MLSys)」全集,小伙伴有福了!
- 5G时代,工业互联网安全挑战远超消费互联网
- 推荐几个MySQL大牛的博客
- 如何使用GitHub Action自动发布JAR到Maven仓库
- 如何打印出给定尺寸的方格_打印给定号码的表格| 8085微处理器
- Android View 如何测量
- WPF中自定义MarkupExtension
- LINUX/MAC的rpath,搜索依赖库时从哪里开始
- SQL 连接 JOIN 例解。(左连接,右连接,全连接,内连接,交叉连接,自连接)...
- tips to understand kexec
- mysql 内连接查询三表数据_数据库三表连接查询怎么做
- php 后台数据 u,Yunucms代码审计:后台XSS和数据库信息泄露
- PCB板材及生产流程详述
- EM78P153单片机构成433MHz发射电路
- Android Studio 模拟器Emulator 设置代理网络 | WIFI图标有叉号但是有网络解决方案
- 6G需要1000亿个基站;5G套餐资费年内或降至50至60元;国内首款L4级5G无人驾驶汽车量产...
- 天勤python_天勤量化策略库:R-Breaker策略(难度:初级)
- C语言程序设计第五版谭浩强课后答案 第九章习题答案
- linux du命令,du命令示例
热门文章
- windows命令行无法启动redis_windows系统安装redis
- linux 多个java_linux 同时出现两个java进程,新手~ 请详细说明,这个是怎么回事。 我就装了一个jdk...
- Python中键映射多个值的方法:defaultdict
- 【C++grammar】多态、联编、虚函数
- java 批量处理 示例_Java中异常处理的示例
- java math.cos_Java Math类静态double cos(double d)示例
- php中自动转换、强制转换、其他数据类型和bool转换
- [Linux]守护进程(精灵进程)
- C++Primer学习笔记:第1章 开始
- 每日一题:leetcode80.删除有序数组中的重复元素贰