第一种情况
var person=new Person();
var userinfo=person.GetPersonInfo();
vs
var userinfo=new Person().GetPersonInfo();
第二种情况
var person=new Person();
var userinfo=person.GetPersonInfo();
string userName=userinfo.UserName;
vs
string userName=new Person().GetPersonInfo().UserName;
以上两种情况,写法上有啥不同,性能会有差异吗?
从性能上没有区别的,但是从代码整洁的角度上会有一定区别。
第一种,不停的声明新的变量。在不需要复用的时候,产生大量垃圾变量,占用变量名称。声明变量一般要求能从变量名称中看出来变量的作用,但是变量名称又不适宜太长,那么我们能描述词汇就变得很有限。那么就会出现变量名称的混淆和作用不清。
在大型系统中,资源是个很紧张的东西,殊不知,变量名也是一种资源。
而第二种情况,会让你代码简洁不少,而语言逻辑也会更清晰。
在一些场景下,例如:需要复用,Debug等时候,写成一长串则不太好用。
即使第二种方法使你的代码看起来更简洁了,但是没用良好的换行习惯一样会使代码变得无法阅读。例如一个特别长的lambda表达式。
两种方式结合使用,养成良好的编码习惯才是硬道理。