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

C#Switch语句重构

在C#中,switch语句是一种用于基于不同条件执行不同代码块的控制结构。它通常用于替换多个if-else语句,以提高代码的可读性和可维护性。

以下是一个使用switch语句的示例:

代码语言:csharp
复制
int dayOfWeek = 3;

switch (dayOfWeek)
{
    case 0:
        Console.WriteLine("Sunday");
        break;
    case 1:
        Console.WriteLine("Monday");
        break;
    case 2:
        Console.WriteLine("Tuesday");
        break;
    case 3:
        Console.WriteLine("Wednesday");
        break;
    case 4:
        Console.WriteLine("Thursday");
        break;
    case 5:
        Console.WriteLine("Friday");
        break;
    case 6:
        Console.WriteLine("Saturday");
        break;
    default:
        Console.WriteLine("Invalid day");
        break;
}

在这个示例中,switch语句检查dayOfWeek变量的值,并根据其值执行相应的代码块。如果dayOfWeek的值不匹配任何case语句,则执行default代码块。

要重构上述代码,可以使用Dictionary<int, string>来存储日期和对应的字符串表示。这样可以避免使用switch语句,并提高代码的可读性和可维护性。

代码语言:csharp
复制
int dayOfWeek = 3;

Dictionary<int, string> dayOfWeekDict = new Dictionary<int, string>
{
    { 0, "Sunday" },
    { 1, "Monday" },
    { 2, "Tuesday" },
    { 3, "Wednesday" },
    { 4, "Thursday" },
    { 5, "Friday" },
    { 6, "Saturday" }
};

if (dayOfWeekDict.TryGetValue(dayOfWeek, out string day))
{
    Console.WriteLine(day);
}
else
{
    Console.WriteLine("Invalid day");
}

在这个重构后的代码中,我们使用Dictionary<int, string>来存储日期和对应的字符串表示。然后,我们使用TryGetValue方法来尝试获取与dayOfWeek对应的字符串表示。如果找到了对应的字符串,则输出该字符串;否则,输出"Invalid day"。

总之,重构switch语句的目的是提高代码的可读性和可维护性。在某些情况下,使用Dictionary可以避免使用switch语句,并提高代码的可读性和可维护性。

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

相关·内容

  • 重构学习-重构原则

    什么是重构: 视上下文重构有两个不同的定义,第一个定义是名词形式 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本 重构的另一人用法是动词形式 使用一系列的重构手法...强调一下,重构不会改变软件的可观察行为,也就是说重构之后功能和原来一样。 为什么要重构重构改进软件设计,如果没有重构,程序的设计会逐渐腐败变质。...重构就是整理代码让代码回到应处的位置上。 完成同样一伯事情,设计不良的程序会往往需要更多代码,这常常是因为代码在不同的地方使用完全相同的语句做同样的事。 改进设计的一个重要原因就是消除重复代码。...重构的原动力是:代码设计无法帮助我轻松的添加我所需要的功能,如果用某种设计方式,添加功能会简单的多,这种情况可以用 重构来弥补。重构是一个快速流畅的过程,一旦完成重构,新特性的添加会更快速,更流畅。...如果在修改bug和审查代码时发现不合理的地方也要进行重构,这样是为了更好的阅读和理解代码 何时不重构: 如果发现代码太混乱,重构它不如重写来的简单这种情况下建议重写,不用进行重构

    1.1K50

    重构重构概要--六大重构模块

    重构方法介绍: 重构改善既有代码的设计 一 重新组织函数 关于注释 :要尽可能少的使用注释 , 注释越多代码的可读性反而更差,注释可以使用函数名来代替 , 不要管函数名有多长, 即使函数名比函数中的代码还要长也不要紧...能更加明确的表明函数的意义,可以将这个算法替换; 二 在对象之间搬移特性 功能模块归属类:对象设计中, 将一个功能模块放在哪个类中,是最重要的任务之一,谁也不能一开始保证设计的是完全合适的,这就需要“对象之间搬移特性”这个重构方法...搬移函数和搬移字段:这两种重构方法都可以解决大多数的问题,如果两种方法同时使用,先搬移字段,在搬移函数。

    71030

    重构

    个人觉得代码重构非常有必要,写程序不但要给机器运行,更让人看的明白。 写代码如写诗一样才行。(内容代码为主,建议实践一下比较好点) 实例 一个图书馆出租书的程序。...接着:直接看下面的代码重构呗 Book类: 将按照书的不同类型,按照不同价格统计的方法移动到Book类中,因为这个按理应该属于Book类中的。...第二次重构 经过第一次重构,还是没有实现需求修改增加多个分类的效果。那么接下来使用接口抽象来再次重构。...最后想说: 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那么就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。...参考文章 【重构】作者: Martin Fowler

    87010

    重构

    说到重构,我们再来了解一下定义:重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,利用设计思想、设计原则、设计模式编程规范等理论来优化代码。...重构目的:1.重构是时刻保证代码质量的一个极其有效的手段,防止代码腐化。当代码腐化到一定程度,量变引起质变,项目的维护成本已经高过重新开发一套新代码的成本。2.优秀的架构和代码是迭代出来的。...时机:持续的重构(做好重构计划,小步快跑,要保证代码仓库中的代码一直处于可运行、逻辑正确的状态.要做好与新功能,老代码的兼容工作。利用静态代码扫描,codeReview做好日常持续重构)。...重构手法总结为“十六字心法”,非常形象、贴切:旧的不变,新的创建。一步切换,旧的再见。...“旧的不变”是指先不动旧方法;“新的创建”是指创建一个跟原来方法功能相同的新方法,你可以通过先复制再重构的方式,来得到这个新方法,也就是整个系统的一个增量;“一步切换”是指,在充分测试之后,新的方法可以完全替代旧方法了

    22830

    代码重构(三):数据重构规则

    在《代码重构(一):函数重构规则(Swift版)》和《代码重构(二):类重构规则(Swift版)》中详细的介绍了函数与类的重构规则。...对数据的组织形式以及操作进行重构,提高了代码的可维护性以及可扩展性。 与函数重构与类重构类似,对数据结构的重构也是有一定的规则的。通过这些规则可以使你更好的组织数据,让你的应用程序更为健壮。...在本篇博客中将会结合着Swift代码实现的小实例来分析一下数据重构的规则,并讨论一下何时使用那些重构规则进行数据重构。...还是那句话“物极必反”呢,如果不恰当的使用重构规则,或者过度的使用重构规则不但起不到重构的作用,有时还会起到反作用。废话少说,进入今天数据重构的主题。 一. ...在本次重构中,依照重构的规则,我们不会去修改我们的测试用例,这一点很重要。 (1)从根本解决问题,首先我们对Customer进行重构

    1.2K60

    代码重构(二):类重构规则

    再仔细分析,其中的Switch语句中的业务逻辑用的全是Book类的东西,和当前BookCustomer类没用什么关联。...但是这个Switch语句是当前charge()函数的核心,也就是BookCustomer严重依赖Book类的地方。...以此分析下去,我们就清楚的指定,该Switch语句块放错了地方,它应该放在Book类中。所以我们应该将这块代码进行搬移。...重构方法就是在Book类中创建一个charge()函数,将Switch语句块放入新的charge()函数中。然后在原来的charge()函数使用Switch语句时调用新的charge()方法。...关于这两个函数重构的规则的具体细节请参见《代码重构(一):函数重构规则(Swift版)》中的介绍。下方截图是对BookCustomer类中的charge()函数进行重构后的结果,如下所示: ?

    1.3K100

    代码重构(三):数据重构规则

    在《代码重构(一):函数重构规则(Swift版)》和《代码重构(二):类重构规则(Swift版)》中详细的介绍了函数与类的重构规则。...对数据的组织形式以及操作进行重构,提高了代码的可维护性以及可扩展性。 与函数重构与类重构类似,对数据结构的重构也是有一定的规则的。通过这些规则可以使你更好的组织数据,让你的应用程序更为健壮。...在本篇博客中将会结合着Swift代码实现的小实例来分析一下数据重构的规则,并讨论一下何时使用那些重构规则进行数据重构。...还是那句话“物极必反”呢,如果不恰当的使用重构规则,或者过度的使用重构规则不但起不到重构的作用,有时还会起到反作用。废话少说,进入今天数据重构的主题。 一....在本次重构中,依照重构的规则,我们不会去修改我们的测试用例,这一点很重要。 (1)从根本解决问题,首先我们对Customer进行重构

    99110

    代码重构(一):函数重构规则

    此时,你要考虑重构了。 重构,在《重构,改善既有代码的设计》这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情况下,修改代码的内部特征。...本篇博客的主题就是通过一些列的重构手法,对既有的需要重构的函数或者方法进行重构。并且会将每个示例在GitHub上进行分享,感兴趣的小伙伴可以对其进行下载。...实在是没有必要再找其他的例子说明这些重构规则,因为《重构:改善既有的代码的设计》这本书真的是太经典了。 1.需要重构的代码如下所示。...在写好需要重构的类后,我们要为该类写一个测试用例。这便于在我们重构时对重构的正确性进行验证,因为每次重构后都要去执行该测试用例,以保证我们重构是正确的。...所为我们可以再次对上述方法进行重构重构后的具体代码如下: ? 今天的博客主要讲了如何对既有代码中的函数进行重构,在本篇博客中提到了8大规则。

    1.6K50

    边缘智能(EI):重构算力、重构算法、重构商业智能

    边缘智能(EI),重构智能算法引擎 真正和老百姓生活息息相关的应用都是哪些呢?一般来说与老百姓出门相关的都是衣食住行,那么衣食住行当中的AI和计算机视觉会有怎样关联呢?...衣食住行无外乎是智能家居、智能出行和线下零售等等几个常用的场景,这些场景当中都有硬件、软件和计算机算法等等完整的处理方式,我们通过EI重构数字空间,其中三个方面,重构算力、重构算法,同时也重构商业模式。...我们要用边缘计算的算法和系统,重构这个零售的空间。 重构的空间能够给人解决什么—实时主动决策 我们认为主要是提供了变革性的决策,也就是主动地决策。

    1.2K30

    重构系统的套路-明确重构目的

    重构系统的套路系列: 本篇说下重构系统的套路中的,明确重构的目的。 ?...不同的重构目的会有不同的重构方式和不同的执行标准。...,但是整个链路的可用性却降低了,贸然全量这样一个重构,必然产生一个非常大的事故。...上面这个虽然是我自己在系统梳理过程中意淫出来的场景,但我不得不再我进行类似系统重构之前,在代码逻辑角度,功能业务角度,缓存集群,mq集群,DB集群等角度考虑,我这次重构可能造成的问题,只有我们在系统重构之间能够想的比黑天鹅来的更快我们才能对系统做更多的保护...基于以上四点不同的重构需求,我们采取的方案和执行的角度完全不同,系统变大了之后,稳定第一。

    2.2K30

    代码重构(六):代码重构完整案例

    前边连续发表了5篇关于重构的博客,其中分门别类的介绍了一些重构手法。今天的这篇博客就使用一个完整的示例来总结一下之前的重构规则,也算给之前的关于重构的博客画一个句号。...首先会给出需要重构的代码,然后对其进行分析,然后对症下药,使用之前我们分享的重构规则对其进行一步步的重构。...然后在此基础上进行分析,使用之前我们提到过的重构手法进行重构。首先我们给出了电影类的实现。...经过这一步重构后,不要忘记执行一下你的测试用例,监测一下重构的结果是否正确。 ?...在不同的类中的getCharge()中要做的事情就是Switch-Case语句中所处理的数据。 ?

    1.9K70

    代码重构(五):继承关系重构规则

    陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段。其实重构伴随着你的项目的整个阶段。...在前几篇关于重构的文章中我们谈到了函数的重构、类的重构、数据的重构以及条件表达式的重构,那么今天咱们就来聊聊继承关系的重构。...当然还是延续前几篇博客的风格,我们在博客中的代码实例依然使用Swift语言来实现,当然还是那句话,使用什么语言无所谓,关键是看重构的场景以及重构的思想。...重构往往伴随着设计模式的使用,在重构系列的博客结束后,我想系统的给大家分享一下关于设计模式的东西。当然是结合着各种实例。...所谓一名Coder,重构和设计模式是必须涉猎的部分,因为这两者可以让你写出更漂亮的代码,当然要想真正的掌握设计模式以及各种重构手法,还得结合不同的实例来进行实践。

    14K61

    何时应该重构代码?如何重构代码?

    重构不止是代码整理,它提供了一种高效且受控的代码整理技术 2.为何重构 改进软件设计:如果没有重构,程序的设计会逐渐变质,重构很像是在整理代码,你所做的就是让所有的东西回到应处的位置上。...3.何时重构 任何情况下我都反对专门拨出时间进行重构重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。...10.switch惊悚现身 面向对象的一个最明显的特征是:少用switch语句 一看到switch语句,就应该考虑以多态来替换它。...六.简化条件表达式 1.分解条件表达式 有一复杂的条件语句。从if、then、else三个段落中分别提炼出独立函数。 2.合并表达式 你有一系列条件测试,都得到相同结果。...以break/return语句取代控制标记。 5.以多态取代条件表达式 有个条件表达式根据对象类型的不同而选择不同的行为。

    1.7K30
    领券