刚才在论坛上看到一个问题,其中网友有帖出一个方法,以下。过多的代码冗余过多的if判断。
下面Insus.NET按照本身的相法与习惯,重构这个方法,但愿代码冗余的地方,可以简化,须要封装的地方,把它们封装。
第一步,你们能够看到每一个if判断块内,都有一句:测试
fileUpload.PostedFile.SaveAs(myDicPath + "\\" + fileName);
结果以下,冗余的都被Insus.NET comment out了,只留下Highlight的一句:
第二步,咱们又看到每一个if判断块内,都有两句代码,是判断目录是否存在,若是不存在,建立目录的。spa
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循环。
看看测试效果:
3d