当前位置:  开发笔记 > 编程语言 > 正文

Lambda变量名称 - 短名称,还是不短名称?

如何解决《Lambda变量名称-短名称,还是不短名称?》经验,为你挑选了3个好方法。

通常,当我使用lambdas时,我只使用"a,b,c,d ......"作为变量名称,因为类型很容易推断,我发现短名称更容易阅读.这是一个例子:

var someEnumerable = GetSomeEnumerable();
var somethingElseList = someEnumerable.Select(a => a.SomeProperty)
                                      .OrderBy(a => a.SomePropertyField);
var someDictionary = somethingElseList.ToDictionary(a => new SomeClass(a.Prop1),
                                                    a => a);

有些人质疑这个命名,并且更愿意看到长输入的名称,如下所示:

var someEnumerable = GetSomeEnumerable();
var somethingElseList = someEnumerable.Select(importantObj => importantObj.SomeProperty)
                                      .OrderBy(objsInfo => objsInfo.SomePropertyField);
var someDictionary = somethingElseList.ToDictionary(theInfoId => new SomeClass(theInfoId.Prop1),
                                                    theInfoId2 => theInfoId2);

由于范围很窄(在parens之间),除非你变得愚蠢并将它们嵌套,否则我会发现阅读短名称更容易.

我没有被上面使用的愚蠢的命名示例所吸引,对Lambda变量名称的一般共识是什么?要简短的名字,还是不要简短的名字?



1> BFree..:

我通常这样做的方式取决于你列举的集合.如果集合的名称暗示lambda参数将是什么类型,那么我只使用单个字母,但是如果集合不是描述性的,那么我将使用一个单词.

IE:

myCollection.Where(person =>....); //non descriptive collection name

myPeopleCollection.Where(p=>...); // descriptive collection name



2> Jon Skeet..:

我尝试使用单字但有意义的名字.所以我倾向于使用"人"而不是"p",但不会选择"newlyAddedPerson".

这也适用于查询表达式 - 我可能会在快速丢弃的示例中违反此规则,但我通常不喜欢:

from p in source
where p.Age > 10
select p.Name;

我宁愿看到

from person in source
where person.Age > 10
select person.Name;



3> 小智..:

我喜欢这个简称.我一直这样做.我主要在lambdas中使用i,y,x,但我在sql中使用a,b,c,d.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有