减少代码冗余,封装你的程序

本文通过一个实际案例展示了如何逐步重构代码,减少重复逻辑并提高代码的可读性和可维护性。从去除冗余的if判断开始,到封装常用逻辑,再到最终简化条件分支,实现了更加简洁高效的代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚才在论坛上看到一个问题,其中网友有帖出一个方法,如下。过多的代码冗余过多的if判断。



下面Insus.NET按照自己的相法与习惯,重构这个方法,希望代码冗余的地方,能够简化,需要封装的地方,把它们封装。
第一步,大家可以看到每个if判断块内,都有一句:

fileUpload.PostedFile.SaveAs(myDicPath + "\\" + fileName);


结果如下,冗余的都被Insus.NET comment out了,只留下Highlight的一句:



第二步,我们又看到每个if判断块内,都有两句代码,是判断目录是否存在,如果不存在,创建目录的。

 if (!Directory.Exists(myDicPath))
                Directory.CreateDirectory(myDicPath);


我们可以把它封装成一个方法:


重构之后,变成这个样子:



第三步,这个多个if判断块,Insus.NET想法是,去除所在if判断。不可能吧!  是的。看下面的重构过程就行了。在实现之前,先要把这个目录与文件扩展名规划一下:



再写一个方法,带一个参数,传入文件扩展类型名,获取目录名称。



Ok,接下来,我们又可以重构程序了:


嗯,拿掉comment out的代码,留下:



下面的内容于2013-08-07 16:25分补充:
如果真想一个if 也不想要了,可以再重构一下下面的方法:



非常抱歉,上面最后一个补充方法有点小问题,因此Insus.NET再于2013-08-07 21:56分重构一下:


即是说,找到匹配之后,马上break foreach循环。

看看测试效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值