首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

重构我的C#代码 - 切换语句

在C#中,可以使用switch语句来替换多个if-else语句,以提高代码的可读性和可维护性。以下是一个重构代码的示例:

假设我们有一个整数变量number,我们需要根据其值执行不同的操作。

原始代码:

代码语言:csharp
复制
if (number == 1)
{
    Console.WriteLine("Number is 1");
}
else if (number == 2)
{
    Console.WriteLine("Number is 2");
}
else if (number == 3)
{
    Console.WriteLine("Number is 3");
}
else
{
    Console.WriteLine("Number is not 1, 2, or 3");
}

使用switch语句重构:

代码语言:csharp
复制
switch (number)
{
    case 1:
        Console.WriteLine("Number is 1");
        break;
    case 2:
        Console.WriteLine("Number is 2");
        break;
    case 3:
        Console.WriteLine("Number is 3");
        break;
    default:
        Console.WriteLine("Number is not 1, 2, or 3");
        break;
}

在这个示例中,我们使用switch语句来替换原始代码中的多个if-else语句。我们将number作为switch语句的条件,并使用case关键字来指定每个可能的值。如果number的值与任何一个case的值匹配,则执行相应的代码块。如果没有匹配的case,则执行default代码块。

使用switch语句可以使代码更易于阅读和维护,因为它将多个条件分支组织在一起,并使用清晰的语法来标识每个分支。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

代码重构之道:消灭冗长的if语句,提升代码质量

当我们重构代码时,去除代码中的 if语句通常是一个很好的目标。 if语句可能会使代码变得复杂,难以维护,容易引入 bug。本文将介绍一些去除 if语句的常见方案和代码示例。 1....使用多态 多态是一种面向对象编程的技术,它允许我们根据对象的具体类型来调用方法。通过使用多态,我们可以去除一些条件判断语句。...使用策略模式 策略模式是一种设计模式,它将算法封装在独立的策略类中,然后在运行时选择适当的策略。这可以帮助我们避免大量的 if语句。...,还有设计模式中的工厂模式、观察者模式、装饰者模式等,都可以帮助我们去除代码中的if语句,提高代码的可维护性和可扩展性。...具体的方法取决于代码的具体情况和需求。 重构代码以去除 if语句可能需要一些额外的工作,但通常是值得的,因为它可以使代码更加清晰、可读和易于维护。希望这些示例对你有所帮助。感谢你的阅读!

22140

狗屎一样的代码!快,重构我!

重构不止是代码整理,它提供了一种高效且受控的代码整理技术 2、为何重构 改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做的就是让所有的东西回到应处的位置上。...3、何时重构 任何情况下我都反对专门拨出时间进行重构。重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。...修改错误的时候 review代码的时重构 间接层和重构 计算机科学是这样一门科学:它相信所有的问题都可以通过增加一个间接层来解决。...何时不该重构:有时候既有代码实在太混乱,重构它还不如重新写一个来得简单。 重写而非重构的一个清楚讯号是:现有代码根本不能正常运作。...10、switch惊悚现身 面向对象的一个最明显的特征是:少用switch语句 一看到switch语句,就应该考虑以多态来替换它。

74530
  • 狗屎一样的代码!快,重构我!

    作者:小村医 https://www.jianshu.com/p/3f04b6aebad2 狗屎一样的代码如何重构? 重构不止是代码整理,它提供了一种高效且受控的代码整理技术。...2、为何重构 改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做的就是让所有的东西回到应处的位置上。...3、何时重构 任何情况下我都反对专门拨出时间进行重构。重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。...推荐阅读:44个Java代码性能优化总结。 何时不该重构:有时候既有代码实在太混乱,重构它还不如重新写一个来得简单。 重写而非重构的一个清楚讯号是:现有代码根本不能正常运作。...10、switch惊悚现身 面向对象的一个最明显的特征是:少用switch语句一看到switch语句,就应该考虑以多态来替换它。推荐阅读:switch支持的 6 种数据类型!

    78530

    狗屎一样的代码!快,重构我!

    狗屎一样的代码如何重构? 重构不止是代码整理,它提供了一种高效且受控的代码整理技术。...2、为何重构 改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做的就是让所有的东西回到应处的位置上。...提高编程速度:良好的设计是快速开发的根本,改善设计、提高可读性,减少错误,这些都是提高质量。 3、何时重构 任何情况下我都反对专门拨出时间进行重构。...推荐阅读:44个Java代码性能优化总结。 何时不该重构:有时候既有代码实在太混乱,重构它还不如重新写一个来得简单。 重写而非重构的一个清楚讯号是:现有代码根本不能正常运作。...10、switch惊悚现身 面向对象的一个最明显的特征是:少用switch语句一看到switch语句,就应该考虑以多态来替换它。推荐阅读:switch支持的 6 种数据类型!

    1.1K40

    C# 谁改了我的代码

    Foo 做的就是 C# 字符串首字符大写 public static unsafe void Foo() { fixed (char* ptr =...让别人看到源代码也不知道怎么使用,那么就可以使用这个科技,下面就是显示技术的时候 我把 Foo 做一些修改,把 str 变量去掉,这样大家就难以通过搜索变量引用找到了这个函数。...但是我在其他的某个地方使用了这个常量字符串,于是就把上面的 str 修改为 “lindexi” 。大家也许会想,这是两个变量,对他做什么修改也不会对之前的 str 有什么影响。...所以可以写的是一个常量,实际上这个常量在另一个地方被修改。 如果我代码很多,在某个地方使用了反射,反射一个方法,这个方法是修改一个常量的值,常量是写自己写的,没有引用。...这时可以发现代码执行就可以更改之前的字符串值。实际上不只字符串,其它的常量也可以修改。多使用这些技术,可以让看代码的人成为强大的杀人狂。

    37610

    C# 谁改了我的代码

    Foo 做的就是 C# 字符串首字符大写 public static unsafe void Foo() { fixed (char* ptr =...让别人看到源代码也不知道怎么使用,那么就可以使用这个科技,下面就是显示技术的时候 我把 Foo 做一些修改,把 str 变量去掉,这样大家就难以通过搜索变量引用找到了这个函数。...但是我在其他的某个地方使用了这个常量字符串,于是就把上面的 str 修改为 “lindexi” 。大家也许会想,这是两个变量,对他做什么修改也不会对之前的 str 有什么影响。...所以可以写的是一个常量,实际上这个常量在另一个地方被修改。 如果我代码很多,在某个地方使用了反射,反射一个方法,这个方法是修改一个常量的值,常量是写自己写的,没有引用。...这时可以发现代码执行就可以更改之前的字符串值。实际上不只字符串,其它的常量也可以修改。多使用这些技术,可以让看代码的人成为强大的杀人狂。

    19020

    使用 C# 集合表达式重构代码

    本文是系列文章的第二篇,该系列文章涵盖了探索 C# 12功能的各种重构场景。...该系列的进展情况如下: 使用主构造函数重构 C# 代码 使用集合表达式重构 C# 代码(本文) 通过为任何类型添加别名来重构您的 C# 代码 重构您的 C# 代码以使用默认 lambda 参数 这些功能延续了我们的旅程...,使我们的代码更具可读性和可维护性,并且被认为是开发人员应该了解的“日常 C#”功能。...expression var collection = [1, 2, 3]; 您可能会问自己,“既然有这么多不同的方法来初始化集合,为什么我要使用新的集合表达式语法?”...编译器能够进行这些优化,因为它知道集合表达式的目标类型。 后续步骤 请务必在您自己的代码中尝试一下!敬请期待本系列的下一篇文章,我们将探讨如何通过为任何类型添加别名来重构 C# 代码。

    20210

    我的页面重构经验

    我的页面重构经验 由 Ghostzhang 发表于 2006-03-23 10:19 前两天跟群里的『白菜』兄谈到了学习web标准中遇到的问题,觉得很值得写一下,是我对标准的一些理解,希望对在学习web...现在学习web标准的人越来越多,对于刚接触标准的人来说,我想大多数人的第一个印象就是用DIV+CSS制作页面,使用DIV来布局的确是标准的一个主要的特点,但标准并不只是用DIV+CSS布局,看过w3cn...下面是我的制作页面的一点经验,权当是总结吧,跟大家分享一下: 第一阶段 开始制作的时候,应该先从没有样式表文件的页面做起,做到最基本的结构,就是使用结构化、语义化的标记,如用ul,li标签或dl,dt,...这时就得出动多个浏览器啦,最基本的IE5/IE5.5/IE6/FF,目前我就只有这几个版本的浏览器,应该也已经足够了吧。...因为是在FF中做的页面,所以现在主要要解决页面在IE中的显示问题,在我BLOG上可以找到相关的一些资料,主要是使用hack,但hack不是标准,所以使用hack有可能会通不过W3C的代码验证。

    48470

    被迫重构代码,这次我干掉了 if-else

    传统的实现方式 我们看下边的伪代码,大致就是重构前下单逻辑的代码,由于来源比较少,简单的做if-else逻辑判断足以满足需求。...现在每种订单来源的处理逻辑都有几百行代码,看着已经比较臃肿,可我愣是迟迟没动手重构,一方面业务方总像催命鬼一样的让你赶工期,想快速实现需求,这样写是最快;另一方面是不敢动,面对古董级代码,还是想求个安稳...思来想去基于当前业务场景重构,还是用策略模式比较合适,它是oop中比较著名的设计模式之一,对方法行为的抽象。...还有一些小伙伴纠结于性能问题,策略模式的性能可能确实不如if-else。 但我觉得吧增加一点复杂度、牺牲一丢丢性能,换代码的整洁和可维护性还是值得的。...策略模式的优缺点 优点 易于扩展,增加一个新的策略只需要添加一个具体的策略类即可,基本不需要改变原有的代码,符合开放封闭原则 避免使用多重条件选择语句,充分体现面向对象设计思想 策略类之间可以自由切换,

    50130

    我心中的页面重构

    直到今晚,我纠结半天,才发现我的很多作品,都是半吊子,都不能很好的展示我的重构技术。 正文: 页面重构是什么?...而今,我认为页面重构被赋予了新的使命。...今晚师姐、同学、以及面试官都有问到我,为什么我要报重构,而不是开发类的,我是真心想在重构上面做下去吗? 我是从页面重构,走进的互联网、走进外行人中的“专家”、走进Coding。...所以,我选择重构,希望重构这个岗位,是我步入互联网公司的敲门砖。 结语: 今天面试官问到,页面重构的核心思想是什么?我还是第一次听到这样的问法,就把我心里面的感觉说出来吧。...代码可读,罗马城不是一日建成的,页面也不是一个人月能够完成的,总是会有合作,总是会有迭代,必须保证代码的可读性。

    39200

    代码重构的艺术

    本质上来说重构就是在代码写好之后改进它的设计。 重构的目的是什么 首先,重构是时刻保证代码质量的一个极其有效的手段,不至于让代码腐化到无可救药的地步。项目在演进,代码不停地在堆砌。...Code Review对于编写清晰的代码也很重要,我写的代码也许对于我自己来说很清晰,但对于别人来说则不然。Code Review让更多人有机会提出有用的建议来对代码进行调整。三人行,则必有我师。...目前我所在部门前端组的一系列产品包括项目,已经把这些功能集成在CI里面的,每次的代码更新,都会触发扫描代码的流程,CI失败就无法将代码合并到开发分支上面。...学会只编写够用的注释,过犹不及,应当重视质量而不是数量 多层的if语句嵌套 ? if-else在程序设计中是不可避免的,作为程序员能做的就是减少嵌套,提升代码的可阅读性和质量 很酷却不宜理解代码 ?...上面这种写法看起来是不是很酷,但是过一段时间再来看,你还能一眼看出这部分功能是做什么的吗?在我刚接触后端,使用python的时候写过这样的代码,结果就是在排查问题的时候相当头疼。

    83220

    重构代码的Tricks

    而重构代码就是依赖于设计模式而实现的一个必要手段,可以说设计模式就是重构代码的目标,但他的手段却不仅仅只有设计模式这些大而全的,同样存在小而精,我们随处可以使用的。...,而且我们要尽可能的减少和简化分支语句里面的程序量,让阅读者耗费在分支语句上的时间降到最少。...我们可以使用命令模式进行重构。 这就涉及到另外一个tip. 将分支转化为函数 上面代码里面的分支完全可以使用函数来进行代替。...这就是通过命令模式,来重构代码,完成性能和阅读的优化。 但有时候,使用分支,会比这样更简洁,那当然可以使用分支啦。 而使用分支还要主意一个tip就是....如果,我遇见这样的代码,我第一反应就是,要!死!啦!. 所以,为了让你的程序人性化,我们可以使用return 语句进行改写。

    1.3K10

    重构-改善既有代码的设计:大型重构

    大型重构 1. Tease apart Inheritance 梳理并分解继承体系 某个继承体系同时承担两项责任 ,建立两个继承体系,并通过委托关系让其中一个可以调用另一个 . 2....Convert Procedural design to Objects 将过程化设计转化为对象设计 你手上有一些传统过程佛冈可选择代码 , 将数据记录变成对象,将大块的行为分成小块,并将行为移入相关对象之中...Separate Domain from from Presention 将领域和表述/显示分离 某些GUI类之中饮食了领域逻辑 , 将领域逻辑分离出来,为它们建立独立的领域类 4....Extract Hierarchy 提炼继承体系 你有某个类做了太多工作,其中一部分工作是以大量条件表达式完成的 , 建立继承体系,以一个子类表示一种特殊情况

    43610

    .NET重构—单元测试的代码重构

    ,重构能有今天的风光影响力完全少不了单元测试的功劳;最近一段时间写单元测试用例的时间远超过我写逻辑代码的时间和多的多的代码量,这是为什么?...我一开始很难给自己一个理由去做好这件事,心态上还是转变不过来,可是每当我心浮气躁的时候它总能给我点惊喜,让我继续下去,天生具有好奇心的程序员怎么会就此结束呢,只有到达了一扇门之后我们回过头来看一下走的路才能真正的明白这是条对的路还是错的路...,那么一旦被测试代码发生一点点的变化都会很大程度上影响测试代码,毕竟测试代码都是步步依赖的; 那么我们应该最大程度的限制由于被测试代码的变动而引起的测试代码的变动,这个时候我们应该将重构应用到测试代码中...; 2.1】单元测试的继承体系(利用超类来减少Mock对象的使用) 将多个相关的测试用例代码通过超类的方式关联起来统一管理将大大减少重复代码的构建;就跟我们重构普通代码一样,将多个类之间共享的逻辑代码或者对象提取出来放到基类中...,它是碎片化的简单的测试数据;它也同样存在着和2.1.2】小结的修改问题,实践告诉我单元测试代码在整个开发周期中最易被修改,当我们简单的修改一个逻辑之后就需要面临着大面积的单元测试代码修改而测试数据修改占比重最大

    1.3K60

    码妞:领导让我重构代码,怎么办?

    什么时候进行重构? ? ? 任何时间都可以进行重构,前提是你有足够的时间以及精力去做这件事情,大部分公司重构代码是不会计入KPI的,甚至重构的越多,出bug的概率就越大,背锅的可能就越大。...很多新手在进行重构的时候,往往会在重构过程中去修改之前的固有逻辑,甚至增加一些自己的业务理解去“优化”现有的代码,这是大错特错的,因此重构的第一个原则是:“忠于原代码”,特别是在自己无法理解之前业务的下...重构的第三个原则:“简洁逻辑而非减少代码”,重构最终的目标是需要符合软件工程中单一指责以及开闭原则的,代码行数的多少不是关键,怎么理清楚逻辑,让后续维护方便,入手学习成本低才是最关键的。...重构的另外一个原则就是:“合适的才是最好的”,很多人重构代码就是炫技,一旦给他重构代码的机会,就如脱缰野马,引入大量自己并不熟悉的框架进行,觉得这是一个学习的好机会,一旦出现问题就无法解决。...比如在Android中对之前代码的重构,应该是先模块,后组件,然后逐渐到具体业务,这样就可以保证整个过程中重构的一致性。 ?

    59130

    重构 -- 我是一个类,难道我不配有专属的测试代码吗?

    这点我以前确实没想过 刚看到这个观点的时候,我是很不以为然的,谁让它标题不吸引人>>>《构建测试体系》 就这标题,谁不知道要测试啊。还好我没有“以貌取文”,我认真的看了下去。...每个类都配备测试代码,烦不烦啊你? 烦。但是项目run的时候爆了烦不烦?那会儿可就不是一个人烦了,那是一个团队一起烦。...这种问题其实完全可以避免,甚至可以不发生,只要给每个类配备一个测试代码。 写一个测试代码能花多少时间,十分钟,测试一下能花多少时间,十分钟。害怕测出问题?...行吧,我写,那怎么写啊? 怎么写那是个人自己的事情。但是,我想说的是,测试代码,最好写在功能类之前,这样可以预先界定功能类的具体功能,也可以把思路清晰一下。 至于测试代码要测试哪些东西?...你害怕哪里出问题就重点测试哪里,我们不能确保在测试代码中把所有问题全暴露出来,但是我们要花最少的时间,将利益最大化!!!

    73940

    代码重构:函数重构的 7 个小技巧

    重构的范围很大,有包括类结构、变量、函数、对象关系,还有单元测试的体系构建等等。但在这一章,我们主要分享重构函数的 7 个小技巧。...在重构的世界里,几乎所有的问题都源于过长的函数导致的,因为: 过长的函数包含太多信息,承担太多职责,无法或者很难复用 错综复杂的逻辑,导致没人愿意去阅读代码,理解作者的意图 对于过长函数的处理方式,在...示例一 我们先看一段代码(我敢保证这段代码你看的肯定会很头疼。。。)...现在我们变牛逼 了,对于曾经的糟糕代码肯定不能不闻不问,所以的重构就是,在不更改输入和输出的情况下,给他替换一种更优雅的实现,代码如下: String foundPerson(String[] people...,如果你有更好的实现方案(保证输入输出相同的前提下),就应该直接替换掉它 记得通过单元测试后,再提交代码(不想被人打的话) 参考文献: 《重构:Refactoring: Improving the Design

    64230

    代码重构:类重构的 8 个小技巧

    就要运用一些重构的技巧,来让代码结构保持整洁,从而让后续的需求扩展更加稳定 1:合理的分配函数 说明:从 OOP 的角度来考虑,如果函数之间频繁的调用,显然适合放在一个对象当中 使用场景:在 A 对象内...,设置不同的 _interestRate 利率,代码更灵活 总结 不管是搬迁函数,还是搬迁字段也好,它们都是在不断重构类的职责和属性,程序会跟随需求不断变化,没有任何设计是可以保持一成不变的,所以这里的重构方法...省略 get/set 代码... } 这时候 Person 对象的职责就简单和清晰很多了,对象结构如下: TelePhoneNumber 对接结构图如下: 总结 拆解大类,是常见的重构技术手段...,但是当我想要获取某一个 Person 对象的所属经理的时候,我就需要先获取 Person 的 Department 对象,然后在 Department 中才能调用 getManager() 函数,代码看起来就会很别扭...,建议使用 增强工具类 的方式重构显然更加的合适

    1.2K20
    领券