惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Privacy & Cybersecurity Law Blog
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
B
Blog RSS Feed
罗磊的独立博客
V
V2EX
V
Visual Studio Blog
博客园 - 叶小钗
W
WeLiveSecurity
小众软件
小众软件
K
Kaspersky official blog
美团技术团队
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
Martin Fowler
Martin Fowler
Recorded Future
Recorded Future
Project Zero
Project Zero
Hugging Face - Blog
Hugging Face - Blog
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
V
Vulnerabilities – Threatpost
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Forbes - Security
Forbes - Security
M
MIT News - Artificial intelligence
H
Hacker News: Front Page
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Spread Privacy
Spread Privacy
The Register - Security
The Register - Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
量子位
Google Online Security Blog
Google Online Security Blog
PCI Perspectives
PCI Perspectives
The Last Watchdog
The Last Watchdog
AI
AI
N
News | PayPal Newsroom
D
DataBreaches.Net
Cloudbric
Cloudbric
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog

博客园 - 一碗豆芽汤(OneV)

C#一些基础知识回顾 2021年立个Flag,回顾十多年来的IT职业之路-----没事瞎BB 使用 Visual Studio 创建 .NET 5 控制台应用程序 log4net将日志进行分类,保存到不同的目录当中 .net 使用PowerShell获取电脑中的UUID .Net MVC中访问PC网页时,自动切换到移动端对应页面 C# 全角符号转半角 微信开发第二篇:工具篇 微信开发第一篇:问题篇 [转载]ODAC (odp.net) 开发到部署 【项目开发】LigerUI+MVC的应用 VS中两个常用辅助工具 sqlite中常见的问题总结 第1次做面试官的随谈(二) 第1次做面试官的随谈(一) 转,有用 [转载收录]ASP.NET 2.0加密Web.config - 一碗豆芽汤(OneV) - 博客园 关于重构之Switch的处理【二】 - 一碗豆芽汤(OneV) - 博客园 重构的例子
关于重构之Switch的处理【一】如果是有序的话,如何处理
一碗豆芽汤(OneV) · 2011-01-03 · via 博客园 - 一碗豆芽汤(OneV)

     今天晚上休息,坐在电脑边,不知道为什么,总感觉心里有很多的想写下来,可不知道该写些什么!突然来了灵感,觉得不如就写点重构相关的什么东西,也回顾一下自己今年一年的历程,2010年年初的时候,刚到公司,某一个中午的时候,看到部门角落里的一个书架上,堆着满满的书,就从其中选了一本《重构 改善既有代码的设计》一书,翻了起来,因为在这之前自己从来就没有接触过重构,也不知道重构是个什么概念,不过当我开始读这本书的时候,我发现他里面的内容似乎就是我一直苦苦寻找的东西,因为有时候我老是想改自己代码,可都不知道从何如手,他里面提到的方法,真的是都指到了代码为什么难读,难理解的点子上。所以这里,就先说一下,我在处理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;
                      }
  

        }  

}

以上实例,其实运行时并不会报任何的错误,而且计算机也能认识,但是我想问一下,如果我后面还有很多的switch,是不是大家得一直加case,慢慢是不是会变得越来越长呢,还是直接先来看重构后的代码吧

 public class Fun{

        public void IFNumberid(int flag)  

        {

         string[]  arryString={"","优秀","良好","一般","不及格"};

          Console.WriteLine(arryString[flag]);

        }  

}

看看之前的代码和现在的代码,是不是有了很大的改进呢!行数从十多行,缩短到了几行,是不是更加好读了呢!以上实例仅仅是在switch中 case语句是连续的数字情况之下,当然如果不是连续的也有其实办法可以处理( 自己想想。。。),我的建议是在代码中尽量少用switch的就少用,不用的就不用,因为switch越多,你的代码越难读懂,我还是相信一句话,让机器读懂你的代码很容易,让人读懂你的代码才是最重要的,另外如果你还是经常按switch的语法写的话,不妨想想可能还有其他的算法可以替代。

好了,算是一个最简单的重构技巧到此就结束了,在提醒一句,重构不等于重搞,它也跟性能优化一点关系也没有,如果原代码有BUG,那么在代码重构之后,依然存在BUG,