日期:2014-05-20  浏览次数:20797 次

万能的.NET!
自己写的代码 if(){}else{}太多,看起来真不舒服!是否说明我的逻辑不够严谨,代码不够精简!优化代码也是一门学识!得反思!

------解决方案--------------------
虽然不知道lz在说什么,但不影响我对lz的膜拜。
------解决方案--------------------
适当引用设计模式,比如利用Strategy消除代码中的if-else。

Refactoring,可以读一读
------解决方案--------------------
嗯,你的代码看上去不像在干你所要的事情--这是我见到if{}else{}嵌套很多的人的代码的感觉。
代码的结构是那个函数所要实现的目标的各步骤、或逻辑结构。这样的话一般你要很会用return,continue之类的语句。
------解决方案--------------------
if else 正好说明你逻辑严谨

说明你缺乏不同于程序员眼光看问题的方法。

1.不要if,只要小功能。不管你怎么if,其实最终他会执行一个小功能,你先把小功能做出来,然后在去套逻辑

2.使用断言和条件清理,先把不合适的清除出去。呵呵,单纯程序员喜欢按顺序写,喜欢先执行可执行滴,然后在else处理不合适迪,不过非单纯的程序员更喜欢优先处理不合适滴,因为不合适的已经被清理出去了,所以只剩下合适的了,所以逻辑上更简单(这个在一般计算机术语里面叫,断言编程--优先保证不会发生的情况绝对不会发生,有的人也叫手术室清理原则--先把细菌都清干净了,然后在进手术室)

3.不要预先去讲效率,正是因为你讲效率所以才会把大段大段的代码“优化效率”并在一起写。事实上这种写法是c++的写法,而企业级的写法是把代码拆成最小的块。如果这块被证明实在是没效率,再考虑在优化这个块,如果实在证明连优化的都不能满意,才无可奈何的接受把他并入上层代码里面。
------解决方案--------------------
可以做一些封装,返回布尔值。嵌套层数多了,就很难看了,而且很难维护。。。
------解决方案--------------------
在看Refactoring之前先学习面向对象,职责分配
通过职责分离来解决if..else,当然也有很多tricks
比如用细小对象结合继承多态实现策略,状态模式,这个可以参考GOF
另外用Dictionary取代switch..cas
用LINQ取代for
anyway,要有一种美学意识,而不是工程意识,这点很重要

------解决方案--------------------
能用switch...case 尽量用他;
if分支优先频率高的至于最前..
------解决方案--------------------
还有一种可能性,你的代码中逻辑太密集,尽量将可能重用的代码整合到一个方法中去,这样可以减少成片成片的代码。
------解决方案--------------------
不知道上面的人在说什么。。不过感觉很厉害的样子。。。
------解决方案--------------------
探讨

不知道上面的人在说什么。。不过感觉很厉害的样子。。。