release 下看一看IL代码不久好了么,没差别
可是为什么项目经理要求我们按照每种情况的第一种写法?
@MyTestDays:
第一种写法
更清晰明了。
以后要修改也方便一些。比如你的getinfo,以后要在调用难道在new一个,或者修改现在的代码,提取变量?容易出错,出bug。
@MyTestDays: 因为你们项目经理比较闲
没有差别。
没区别没区别
只能说明你们项目经理是个喜欢装逼的人,性格使然而已。对于我,能一句话表达清楚的我绝对不用两句话,能属性的多半不用函数表达,一个类文件通常尽量百把行,两三百行属于少数,至于达到或超过三四百行的极少数。
没什么区别,第一种更清晰明了,便于后期调用其他信息,如果你只是获取就这一个信息这么写无所谓,PM提的我觉得可以理解,下面负责开发的考虑很少,实现功能就行,PM考虑的要多了,如果你这里这个后期有修改,需要获取用户的其他信息,要是还用new的话会重复创建类多次分别内存,所以建议还是用第一种,创建一次后续直接获取就行了
用多次就第一种,可以重复使用
只用一次就第二种,看起来比较简洁
从性能上没有区别的。
但是从代码整洁的角度上会有一定区别。
第一种,不停的声明新的变量。在不需要复用的时候,产生大量垃圾变量,占用变量名称。声明变量一般要求能从变量名称中看出来变量的作用,但是变量名称又不适宜太长,难么我们能描述词汇就变得很有限。那么就会出现变量名称的混淆和作用不清。
举个例子,有个类“Hen”可以LayEgg,而“Egg”本身可以进行例如“煎炒烹炸”多种烹饪方法。来客人点菜,比如1个煮完切块,10个煎。在不考虑使用循环的情况下,采用第一种方式我们会写出如下代码
//弄来一只母鸡 var hen = new Hen(); //让母鸡下11个蛋 var egg1 = hen.LayEgg(); var egg2 = hen.LayEgg(); var egg3 = hen.LayEgg(); //.... var egg10 = hen.LayEgg(); var egg11 = hen.LayEgg(); //拿一个盘子 var plate = new Plate(); //第一个煮 var egg1Cook = egg1.Cook(); var egg1Cut = egg1Cook .Cut(); plate.Add(egg1Cut); //剩下的煎 var egg2Fried = egg2.Fried(); plate.Add(egg2Fried); var egg3Fried = egg3.Fried(); plate.Add(egg3Fried); //... var egg10Fried = egg10.Fried(); plate.Add(egg10Fried); var egg11Fried = egg11.Fried(); plate.Add(egg11Fried);
然后看到你的代码的小伙伴顿时整个人就不好了。这egg1,2,3,4,5,都什么鬼?现在业务逻辑还都简单,变量名称描述的东西也比较简单,如果再复杂,估计人类贫乏的语言就会不够用。
在大型系统中,资源是个很紧张的东西,殊不知,变量名也是一种资源。
而第二种情况,会让你代码简洁不少,而语言逻辑也会更清晰。
在一些场景下,例如:需要复用,Debug等时候,写成一长串则不太好用。
即使第二种方法使你的代码看起来更简洁了,但是没用良好的换行习惯一样会使代码变得无法阅读。例如一个特别长的lambda表达式。
两种方式结合使用,养成良好的编码习惯才是硬道理。
任何语法在诞生的时候都是优雅的。但是如果滥用,则就让语言失去了其优雅。
没区别,你只是把一步拆成多步了,比如你要走去学校,不过你是大步走过去,还是小步走着去,你都要走一样的距离