【发布时间】:2012-05-19 07:35:20
【问题描述】:
在 C# 中使用之前,我在其他语言中使用过 lambda 表达式,因此我养成了将 _ 用于 Func<T, TResult>, 形式的简单 lambda 的习惯,尤其是对于主体只是一个表示返回值的表达式(谓词等)。但是,在 C# 中,我经常看到使用单个字母而不是 _ 来表示这些相同类型的 lambda 表达式,例如 x,y,z,i,j,k。字母方法对我来说似乎很奇怪,因为这些字母在常见用法中已经具有另一个典型含义,即循环变量。在我看来,_ 通常更容易阅读。单字母样式真的是 C# 中 lambda 的既定样式吗?
例子:
我习惯写的东西:
var ages = people.Select(_ => _.Age);
我看到的是写的:
var ages = people.Select(x => x.Age); // choice of 'x' is not consistent
【问题讨论】:
-
我从未见过使用下划线。
-
我个人使用
w作为 lambda 参数,因为我很容易理解我在说什么。 research.microsoft.com/en-us/um/cambridge/projects/comega的残余@ -
那只是爱简洁的人,我个人用一个有意义的名字。 x 和 _ 都没有意义。在你的例子中,年龄是我的选择。
-
年龄对我来说没有意义,恕我直言。 “p”本来是我的选择,因为它应该代表人员集合中的一个“人”。不过,各有各的。 :)
-
@Tony 普遍认为,当范围足够小时,单字母标识符就可以了
标签: c# coding-style lambda