用括号括起lambda表达式参数

时间:2014-08-22 10:30:22

标签: c# asp.net .net lambda

我今天一直在关注这个tutorial以了解Web API并注意到一些事情 - 在教程代码中,有这一行:

var product = products.FirstOrDefault((p) => p.Id == id);

如您所见,括号中提供了参数“p”。既然这样做不是强制性的,我很好奇这样做是否有任何好处,或者只是开发人员的偏好?

2 个答案:

答案 0 :(得分:8)

在这种情况下,它纯粹是开发者偏好。

如果有多个参数,则需要使用括号。例如:

var singleString = someStrings.Aggregate((current, next) => current + Environment.NewLine + next);

答案 1 :(得分:3)

C#规范明确规定(p) => ...可以写为p => ...

  

7.15匿名函数表达式

     

...

     

在具有单个隐式类型参数的匿名函数中,可以从参数列表中省略括号。换句话说,形式的匿名函数

( param ) => expr
     

可以缩写为

param => expr

所以没有任何技术差异,只有个人偏好。