2011年3月16日
11:41
这两天Code
Diff,看到如下的代码,功能比较简单,技术判断两个HashObject对象是否相等:
private bool Equals(IHashObject data1,
IHashObject data2)
{
bool value = true;
foreach (string
tempString in data1.Keys)
{
if (!string.Equals(data1[tempString],
data2[tempString]))
{
value = false;
break;
}
}
return value;
}
看到这个,凡是知道“防卫语句”重构的,都会建议修改:
private bool Equals(IHashObject data1,
IHashObject data2)
{
foreach (string
tempString in data.Keys)
if
(!string.Equals(data[tempString], hash[tempString]))
return false;
return true;
}
这样就可以省掉一个中间变量,顺便也把不必要的“{}”删除。看起来就比较清爽了。
开发工程师提出:“尽管这样做很漂亮,不过我听说有一个设计原则,就是控制块应该是单入单出的。就是说foreach内要退出控制块应该用break,而不是return,这样的话代码可能会更好阅读”。他知道这样原则,但是并不知道它的所以然。我也不知道,当时学过这个规则,就简单的记下了。
回家后想明白了。用break可以让控制块和其他控制块独立运作,可以达到分而治之的目的。而如果跳转比较复杂,那么就需要几个块同时阅读,导致混乱的局面——也就是所谓的面条代码。不过这里的情况显然不需要遵守此规则。因为
<!--[if !supportLists]-->1.
<!--[endif]-->这里的控制块只有两个,无需担心无法分而治之
<!--[if !supportLists]-->2.
<!--[endif]-->这个规则主要针对乱跳的goto语句,相比之下return的问题并不大。
大家也接受了这个观点。
后记:
过了两天,我回顾了下代码,觉得这个代码其实根本不必写。因为Equals方法已经被IHashObject重载过了。就是说data1.Equals(data2)
和Equals(data1,data2)是等效的。呵呵。
分享到:
相关推荐
环保行业之水环境治理篇:行到水穷处,坐看云起时.pdf
2020年PTA市场回顾与2021年展望:PTA,行至水穷处,坐看云起时
2022年港股策略报告:行到水穷处,坐看云起时.pdf
2022年股指年度策略报告:行到水穷处,坐看云起时.pdf
20201229-方正中期期货-2020年PTA市场回顾与2021年展望:PTA,行至水穷处,坐看云起时.pdf
"环保行业之水环境治理篇:行到水穷处,坐看云起时"这一主题,寓意着面对水环境治理的困境,我们需要有坚韧不拔的精神,寻找新的解决方案,就像登山者走到山穷水尽时,静观云起,期待新的景象。这篇压缩包中的PDF...
天然橡胶策略报告:行到水穷处,坐看云起时-0104-国投安信期货-20页.pdf
A股市场策略专题年报展望:行到水穷处,坐看云起时-0201-中信证券-21页.pdf
这篇名为"2020年PTA市场回顾与2021年展望:PTA,行至水穷处,坐看云起时"的报告,旨在深入分析过去一年PTA市场的波动,并对未来的发展趋势进行预测。 首先,我们回顾2020年的PTA市场。由于全球封锁措施导致的需求...
在这样的背景下,中信建投发布的一份名为《公用事业行业:行到水穷处,坐看云起时》的研究报告,深入分析了公用事业行业当前的市场状况及未来的发展趋势,并提出了针对不同子领域的投资建议。 电力行业作为公用事业...
综合以上知识点,我们可以看出,“行到水尽处,坐看云起时”不仅是描述一种豁达的人生态度,也是教育工作者在面对教学改革时应有的态度。即使在教学的“行到水尽处”时感到迷茫和抵触,但只要敢于改变,便能在“坐看...
交通条件的改善,特别是高铁的开通,将进一步刺激客流增长,长期来看,景区向休闲度假的转型将有助于提高客单价水平。 报告强调了景区板块的防御性特质,过去十年间,在市场波动期间,景区板块通常能取得超额收益,...
王维的诗中透露出对隐居生活的向往和享受,其中“行到水穷处,坐看云起时”这句诗特别著名,它描绘了一种随遇而安、发现生活美好瞬间的意境。 接着,文章对王维的生活哲学进行了深入阐释。王维认为人生中的“胜事”...
报告-国元证券深度报告:变革受益者 坐看云起-120322.doc
2020年四季度宏观经济展望:坐看云起时-20200923精品报告2020.pdf
【债券违约后的处置方式...以上分析揭示了债券违约后处置的复杂性和多样性,投资者在面对此类情况时,需要充分了解各种可能的解决方案,并评估其潜在风险和收益。同时,政策环境和市场变化也是决定处置效果的重要因素。
【横舟坐看云起时 琴音偶得填新词】珠海横琴2020年4月房地产月报.pdf
建筑行业中期策略报告:水穷待云起,绝处觅转机-0618-长江证券-35页.pdf