如何利用委托来优化switch case语句

.NET技术 > C# [问题点数:50分,结帖人cpt_adt2010]
等级
本版专家分:14
结帖率 100%
等级
本版专家分:157029
勋章
Blank
金牌 2011年12月 总版技术专家分月排行榜第一
2011年11月 总版技术专家分月排行榜第一
Blank
红花 2012年1月 .NET技术大版内专家分月排行榜第一
2011年12月 .NET技术大版内专家分月排行榜第一
2011年11月 .NET技术大版内专家分月排行榜第一
2008年3月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2010年4月 .NET技术大版内专家分月排行榜第二
2008年2月 .NET技术大版内专家分月排行榜第二
Blank
蓝花 2010年3月 .NET技术大版内专家分月排行榜第三
2009年12月 .NET技术大版内专家分月排行榜第三
2009年4月 .NET技术大版内专家分月排行榜第三
等级
本版专家分:421106
勋章
Blank
签到新秀 累计签到获取,不积跬步,无以至千里,继续坚持!
Blank
名人 2014年 荣获名人称号
2013年 荣获名人称号
2012年 荣获名人称号
Blank
状元 2013年 总版技术专家分年内排行榜第一
Blank
探花 2014年 总版技术专家分年内排行榜第三
等级
本版专家分:421106
勋章
Blank
签到新秀 累计签到获取,不积跬步,无以至千里,继续坚持!
Blank
名人 2014年 荣获名人称号
2013年 荣获名人称号
2012年 荣获名人称号
Blank
状元 2013年 总版技术专家分年内排行榜第一
Blank
探花 2014年 总版技术专家分年内排行榜第三
等级
本版专家分:14
等级
本版专家分:157029
勋章
Blank
金牌 2011年12月 总版技术专家分月排行榜第一
2011年11月 总版技术专家分月排行榜第一
Blank
红花 2012年1月 .NET技术大版内专家分月排行榜第一
2011年12月 .NET技术大版内专家分月排行榜第一
2011年11月 .NET技术大版内专家分月排行榜第一
2008年3月 .NET技术大版内专家分月排行榜第一
Blank
黄花 2010年4月 .NET技术大版内专家分月排行榜第二
2008年2月 .NET技术大版内专家分月排行榜第二
Blank
蓝花 2010年3月 .NET技术大版内专家分月排行榜第三
2009年12月 .NET技术大版内专家分月排行榜第三
2009年4月 .NET技术大版内专家分月排行榜第三
cpt_adt2010

等级:

用反射或委托优化switch太长的方法

但是我不建议有switch就进行反射或委托来解决。看实际的情况比喻10个以为还是可以接受的。因为switch看起来更加的直接而且效率相对来说是最好的。那下面就用代码来一点点进行解释 1:传统的用法 1.1:现在我们有一...

冗长switch-case语句优化方案

在实际的编程中,我们经常会使用到switch..case语句,这通常也是对一长串if..else if语句优化。对于一些简单的情况(只每个case代码中代码长度不会很长,而且case分之并不多的情况),用switch..case语句即可,...

当使用Switchcase太多,用委托代替

switch (_mediaState) { case State.Run: AAA(); break; case State.Stop: BBB(); ...

多个switch case如何优化

这段时间一直在整改代码圈复杂度,我们的要求是每个函数方法圈复杂度不得大于5,以下是整改的部分截图 希望对整改代码的你有所提示或帮助,如果有更好的整改方法,还望您不吝赐教哦! ......

如何优化switch语句

如何优化switch语句 编程的过程中难免会使用到switch语句case如果少的情况下,效率和性能还可以,如果出项比较多的case的情况下, 还使用swtich,将会大大影响程序的性能。如何优化这样比较大的switch语句呢?...

C# 利用键值对取代Switch...Case语句

swich....case 条件分支多了之后,会...经过查找资料和重构,想到了一种可行的在这种情况替代switch...case的方案——————利用键值对。 声明键值对对象 针对进程通信的代码逻辑,构建了如下的键值对。 Dictiona...

Switch case 更高效的方法:字典(Dictionary) + 委托(delegate)

一条switch语句允许测试一个变量在等于多个值的时的情况。每一个值作为一个case,去判断,当条件达成则执行。 并且,被测试的变量会对每一个case进行检查,直至找到符合条件的。 由于它是以遍历的方式一个个对比。当...

设计模式之:策略模式,解决if...else,以及switch..case

设计模式中的六大原则:  1、单一职责原则(Single Responsibility Principle,简称SRP )  2、里氏替换原则(Liskov Substitution Principle,简称LSP)  3、依赖倒置原则(Dependence Inversion Principle,...

以下代码如何使用委托减少switch case,达到便于维护,高可扩展的目的。

想用委托,减少switch case语句,便于扩展和维护 ![委托](https://img-ask.csdn.net/upload/201609/14/1473815778_19986.png) ![修改后的方法](https://img-ask.csdn.net/upload/201609/14/1473815815_817680.png)...

使用反射替代Switch语句

下面是一个简单的工厂模式的例子,然后把这个例子里面的switch语句通过反射实现: 创建一个ITree的接口: public interface ITree { void plant(); } 让三个不同的树的对象分别实现这个接口: public class ...

asp.net ashx处理程序中switch case的替代方案总结

1、用委托字典代替switch...case; 2、利用反射替代switch...case; 3、比较两种方案 4、其他方案 5、说明 6、参考 在开发 asp.net 项目中,通常使用一般处理程序(ashx)处理前端...

使用简单工厂和State模式替换冗余的 switch-case 语句

使用简单工厂和State模式替换冗余的 switch-case 语句 这篇曾经贴在自己的live space上,今天整理出来发在这里。内容参考了《重构》和《设计模式》 Case如下,假设Employee类中有这样两个方法: PayAmount. ...

C#基础教程-c#实例教程,适合初学者

C#基础教程-c#实例教程,适合初学者。 第一章 C#语言基础 本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序和Web应用程序。...

前端面试题

前端面试题汇总 ... 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 21 ... 21 Quirks模式是什么?它和Standards模式有什么区别 21 div+css的布局较table布局有什么优点?...img的alt与title有何异同?...

WPF学习

首先感谢刘铁锰先生的《深入浅出WPF》,学习WPF过程碰上很多新概念,如Data Binding、路由事件,命令、各种模板等。 WPF:编写CS端的UI技术。 怎么去掉WPF窗体靠上多出黑色的长条?...(我自己觉得偶尔会用用这个) ...

C#中一种替换switch语句更优雅的写法

今天在项目中遇到了使用switch语句判断条件,但问题是条件比较多,大概有几十个条件,满屏幕的case判断,是否有更优雅的写法替代switch语句呢? 假设有这样的一个场景:商场经常会根据情况采取不同的打折方案,如果...

通过委托实现方法数组代替switch分支语句

在实际应用中经常会有对一个传入的类型进行检测后, 再通过 switch 进行分类处理, 如下: private void Response(CmdType cmd) { switch(cmd): case CmdType.Hello: SayHello(); break; case C...

[C#] 用一种更优美的方式替换掉又多又长的switch-case代码段

switch-case语句是我们编码过程中常用的一种分支语句。然而正所谓成也萧何败萧何,每当我们向一个已经拥有了成百上千行的switch-case代码段中添加新的case分支的时候,我们是否有过为代码的可读性和可维护性不断下降...

C#中枚举类型在switch语句中值对照问题

如例子所示,在数据库中存储的是枚举类型的名称而不是值,要如何对照呢? 首先需要进行类型转换,枚举类型提供了parse函数,用法如下:

代替 if-else,switch-case 的几种方法

if-else,switch-case 是判断逻辑的语句,只要我们需要分支,就可能要用到这种语句,在 C 的编程风格中,更是动则需要这种判断语句,问题是这种判断语句如果多了,就会毁坏代码的可读性和维护性,增加了代码的“臭味...

用反射(Reflection)和委托(delegate)分发 switch 操作

有时候,我们经常需要处理一些比较大的 switch 语句,如:public interface IAction { void DoAction(string ActionName); } public class OkCancelAction : IAction { public void DoAction(string Action...

使用Action表驱动代替switchcase语句

大家都知道,代码中出现过多的if…else嵌套语句时很难读,所以常用switchcase语句进行代替,代码的可读性就好了很多。 举个简单的例子: public void DoSomeThing(string str) { if (str == "A") { ...

这些优化技巧可以避免我们在 JS 中过多的使用 IF 语句

最近在重构代码时,我发现早期的代码使用太多的 if 语句,其程度是我从未见过的。这就是为什么我认为分享这些简单的技巧是非常重要的,这些技巧可以帮助我们避免过多的使用 if 语句。接下来会...

避免在 JS 中过多使用 IF 语句优化技巧

接下来会介绍6种方式代替if的使用,这样做不是坚决不使用if偏执狂,而是换个方式思考我们的编码思路。 1. 三元运算符 事例1 带有IF的代码: function saveCustomer(customer) { if (isCustomerValid...

将C#Switch替换掉的一种写法

假设有这样的一个场景:商场经常会根据情况采取不同的打折方案,如果打折方案比较少,可以考虑使用switch语句作判断。但如果有几十甚至几百种打折方案的时候,用switch语句就不够优雅。一、先一个打折接口。 ...

swift 牛逼的地方,改动很牛的地方 switch 语法

不再有之前的case 穿透 但是可以逗号分割,但是每一个case的函数体必须要包含至少一个可执行的语句 在一个switchcase中匹配多个值可以用逗号分割,并且可以写成多行 //: A UIKit based Playground for ...

重构—改善代码既有设计 之switch/case使用

Switch / Case如下,假设Employee类中有这样两个方法: PayAmount. 根据员工类型获得员工的薪水:  public int PayAmount(EmployeeType empType)  {  switch (empType)  {  case Empl

.NET 中的委托

一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:  //Code in C#  public delegate int PerformCalculation(int x, int ...

Xshell-7.0个人免费版.zip

Xshell-7.0个人免费版 ,供个人免费使用。 Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。

Office2016专业增强版中文免费正式版(附安装教程)64位

Microsoft office 2016专业增强版是一款由官方发布的Microsoft office办公软件,而且免费开放给所有Windows用户免费使用,其中Excel、word、PPT都非常智能化,界面最新加入暗黑主题,并且按钮的设计风格开始向Windows10靠拢。本平台提供Office 2016专业增强版,需要的朋友可下载试试! Office 2016 专业增强版安装教程 1. 下载

相关热词 c#轮播图怎么做 c# 动态设置透明背景 c# 图片将白底改成透明 c# 中调用vb类 c#获取项目外的文件 生成简单c#程序步骤 c# 接收post c#属性的作用 c#打印圣诞树 c# 引用 未能添加