日期:2014-05-16  浏览次数:20864 次

新手请教:两组同功能代码的区别与优劣
有下面两组代码:
IMap map = axMapControl1.Map;
ILayer  layer  = map.get_Layer(0);

ILayer layer = axMapControl1.Map.get_Layer(0);

这两组代码哪个可读性高?哪个效率高?第一组中定义的map对象引用有何意义?

------解决方案--------------------
引用:
我的意思是如果我需要多次使用一个对象,却没有定义它的引用变量。以后再想使用它时要怎么做,每次都要用能返回它的方法再返回一次吗?

如果需多次使用,一般选择第一种写法。
若后续不需要IMap map ,可采用第二种。
------解决方案--------------------
引用:
我的意思是如果我需要多次使用一个对象,却没有定义它的引用变量。以后再想使用它时要怎么做,每次都要用能返回它的方法再返回一次吗?


以后再想使用它,那么你就重构你的代码。而不是什么“再返回一次”。

如果不考虑上下文需求,单纯扯什么代码更好,是没有意义的。我通常会习惯写第二种代码,直到有需求时,才改为第一种。
------解决方案--------------------
关于哪一个可读性更高,显然要综合各种因素。例如你真的需要注释一下中间变量的逻辑含义,那么就用第一种写法。但是如果你觉得不必要注视中间变量的了逻辑含义、应该一带而过,那么就用第二种写法。

至于说所谓“效率”,凡是数字的东西请都自己写测试,用测试结果的数字来说话。并且把这种数字转换为人民币。如果纠结这种东西对于一个软件整体而言之不了几毛钱,就没有必要立刻去纠结这毛钱(或者你完全可以不用写程序,而是去向别人要来几毛钱)。