C#代码重构的几个典型案例

这篇具有很好参考价值的文章主要介绍了C#代码重构的几个典型案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前段时间小编检查同事代码,发现居然写的太复杂看不太懂,代码命名不规范,重复冗长代码一堆,这时候就可以通过重构来改进代码的质量。代码重构是提高代码质量和可维护性的关键过程,它旨在通过优化代码结构和设计来提高代码的可读性、可理解性和可扩展性。本文讲述在C#中重构代码的几个案例,供大家参考。

1、命名清晰明确规范

良好的命名是代码可读性和可维护性的关键。确保使用有意义和描述性的名称来表示变量、方法和类等元素。遵循一致的命名规范,例如使用驼峰命名法或帕斯卡命名法,并根据约定来命名不同类型的元素。比如如下案例:

// 知道这是啥意义吗?
int a = 10;

// 从名字中可以看出是代表年龄
int age = 10;

2、减少重复代码

避免在代码中出现重复的逻辑和结构。重复代码不仅增加了代码量,还增加了维护的困难度。比如下列案例:

//下面两个属性明显有重复
public class Product
{
    public Bool IsDeleted{ get; set; }
    public DateTime UpdateTime{ get; set; }
    public DateTime CreateTime{ get; set; }
    // 其他属性和方法...
}

public class Order
{
    public Bool IsDeleted{ get; set; }
    public DateTime UpdateTime{ get; set; }
    public DateTime CreateTime{ get; set; }
    // 其他属性和方法...
}
//可以改造一下 ,定义一个基类继承
//甚至可以把创建修改时间写一个公告方法
public class BaseEntity
{
    public Bool IsDeleted{ get; set; }
    public DateTime UpdateTime{ get; set; }
    public DateTime CreateTime{ get; set; }
}

public class Product : BaseEntity
{
    // Product 特有的属性和方法...
}

public class Order : BaseEntity
{
    // Order 特有的属性和方法...
}

3、使用合适的数据结构和类型

使用合适的数据结构和类型可以提高代码的运行效率,可以减少开发过程中的错误率等。示例代码:

// ArrayList涉及到装箱拆箱问题,不推荐使用
ArrayList list = new ArrayList();
list.Add("张山");
list.Add("王五");
list.Add("12");

// List规避了这一问题,并且性能大增。
List<string> list = new List<string>();
list.Add("张山");
list.Add("王五");
list.Add("12")

4、拆分复杂的条件语句

过于复杂的条件语句让后续开发者难以阅读代码,让代码出错的几率增大,并且增加了代码的维护难度。改进方法是拆分条件语句。案例如下:

public bool CheckAccess(string role, List<string> permissions)
{
    if ((role == "Admin" && permissions.Contains("Create")) ||
        (role == "Manager" && (permissions.Contains("Edit") || permissions.Contains("Delete"))) ||
        (role == "User" && permissions.Contains("View")))
    {
        return true;
    }
    else
    {
        return false;
    }
}
//改进
public bool CheckAccess(string role, List<string> permissions)
{
    if (role == "Admin" && permissions.Contains("Create"))
    {
        return true;
    }

    if (role == "Manager" && (permissions.Contains("Edit") || permissions.Contains("Delete")))
    {
        return true;
    }

    if (role == "User" && permissions.Contains("View"))
    {
        return true;
    }

    return false;
}
//改进后每条代码更加清晰简单,提高了代码的可读性。

5、拆分长方法

长的方法增加代码的难度,代码的可读性和维护性变差,并且不利于测试。改进方式是拆分长方法。案例如下:

// 长方法
public void ProcessData()
{
    // 长方法代码块
    // 计算杨辉三角逻辑
    // 查询当前IP地址逻辑
    // 查询天气预报的逻辑
}

// 好的方式
public void ProcessData()
{
    //计算杨辉三角方法
    ProYangHuiTriangle();
    //查询当前IP地址方法
    GetHttpIp();
    //查询天气预报的方法
    GetWeather();
}

private void ProYangHuiTriangle()
{
    //计算杨辉三角逻辑
}

private void GetHttpIp()
{
    //查询当前IP地址逻辑
}

private void GetWeather3()
{
    //查询天气预报的逻辑
}
//经过这样拆分改造,让方法更加简单明了,可读性更强,并且易于维护测试
//欢迎关注公众号:DOTNET开发跳槽,领取海量面试题。
//加微信号xbhpnet入群交流技术和跳槽

结语

本文讲述了几个代码重构的案例,希望对大家的代码重构有所帮助。那么到底需要代码重构吗?你有代码重构的案例吗?欢迎留言讨论或吐槽。文章来源地址https://www.toymoban.com/news/detail-572670.html

来源公众号:DotNet开发跳槽

到了这里,关于C#代码重构的几个典型案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 网络安全应急响应典型案例集

    本文是学习网络安全应急响应典型案例集(2021). 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 数据泄露指将机密信息、私人信息或其他敏感信息发布到不安全的环境中。数据泄露分为外部泄露和内部泄露两种,外部泄露典型如攻击者通过漏洞利

    2024年02月15日
    浏览(38)
  • 【典型案例】解决idea打不开项目的问题

    前言 今天在使用工作过程中,遇到了一个idea开发工具先关的问题,也是因为解决这个问题耽误了正常搬砖的时间,同时也由于远程办公网速比较卡的原因,导致心情比较心烦气躁,所有针对这个心烦的问题,在这里总结一下,给后续自己提个醒; 问题描述 : 在正常工作中

    2024年02月07日
    浏览(43)
  • Java乐观锁的实现原理和典型案例

    什么是乐观锁? 在并发编程中,多个线程同时对同一资源进行操作时,需要使用锁来保证数据的一致性。 乐观锁与悲观锁是两种不同的锁机制。 悲观锁会在整个操作期间占用资源的独占性,以保证数据的一致性,而乐观锁则是基于版本号或时间戳的机制,在操作前做一个乐

    2024年02月12日
    浏览(53)
  • 【项目实战典型案例】23.部分服务总是频繁出现掉线情况

    因为某些特殊原因需要把nacos迁移到另一个版本的nacos(我迁的是nacos2.0.2版本.) 迁移完成后,Nacos注册中心有一个微服务有多台实例的时候,点击一个实例下线操作,报错 caused: errCode: 500, errMsg: do metadata operation failed ;caused:com.alibaba.nacos.consistency.exception.ConsistencyException:com.alibaba.

    2024年02月07日
    浏览(36)
  • 云起无垠典型案例入选《2023软件供应链安全洞察》报告

    近日,历时6个月,由ISC编制的《2023软件供应链安全洞察》报告(以下简称《报告》)正式对外发布。《报告》围绕软件供应链安全现状、技术内核、治理指南、落地实践展开,以期为行业从业者提供有价值的信息和洞见,帮助整个行业在应对软件供应链安全挑战的道路上迈

    2024年02月07日
    浏览(46)
  • 【项目实战典型案例】05.前后端分离的好处(发送调查问卷)

      以下流程图是给用户发送调查问的整体流程,将不必要的业务逻辑放到前端进行处理。这样导致逻辑混乱难以维护。前后端分离的其中一个目的是将功能的样式放在了前端将功能的业务逻辑放到了后端来处理。   明确业务逻辑,对于业务逻辑的明确可以使用UML图的方式

    2024年02月11日
    浏览(43)
  • Spark大数据处理讲课笔记---Spark RDD典型案例

    利用RDD计算总分与平均分 利用RDD统计每日新增用户 利用RDD实现分组排行榜 针对成绩表,计算每个学生总分和平均分   读取成绩文件,生成lines;定义二元组成绩列表;遍历lines,填充二元组成绩列表;基于二元组成绩列表创建RDD;对rdd按键归约得到rdd1,计算总分;将rdd1映射

    2024年02月06日
    浏览(50)
  • 遥感云大数据在灾害、水体与湿地领域典型案例及GPT模型

    详情点击链接:遥感云大数据在灾害、水体与湿地领域典型案例实践及GPT模型 第一: 基础 一: 平台及基础 开发平台 ·GEE平台及典型应用案例; ·GEE开发环境及常用数据资源; ·ChatGPT、文心一言等GPT模型 ·JavaScript基础; ·GEE遥感云重要概念与典型数据分析流程;     ·G

    2024年02月12日
    浏览(54)
  • 华为AR路由器 典型配置案例——以太网交换

    目录 Eth-Trunk 例:配置三层链路聚合 组网需求 操作步骤 检查配置结果 配置脚本 VLAN 举例:配置基于接口划分VLAN,实现同一VLAN内的互通(同设备) 组网需求 操作步骤 检查配置结果 配置脚本 举例:配置三层子接口实现不同VLAN间的互通 组网需求 操作步骤 检查配置结果 配置

    2024年02月11日
    浏览(39)
  • 网络安全应急响应典型案例-(DDOS类、僵尸网络类、数据泄露类)

        DDOS攻击,即分布式拒绝服务攻击,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。CC攻击使用代理服务器向受害服务器发送大量貌似合法的请求(通常为HTTP GET),通常会导致网站出现了无法进行操作的情况,不仅仅影

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包