【问题标题】:Surrounding a lambda expression parameter with parentheses用括号括住 lambda 表达式参数
【发布时间】:2014-08-22 10:30:22
【问题描述】:

我今天一直在关注这个tutorial 以了解一些有关 Web API 的知识并注意到一些东西 - 在教程代码中,有这样一行:

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

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

【问题讨论】:

  • 如果您有多个参数,则需要括号。

标签: c# asp.net .net lambda


【解决方案1】:

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

当您有多个参数时,需要使用括号。例如:

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

【讨论】:

  • 啊,有道理。感谢您的回复!
【解决方案2】:

C# 规范明确指出(p) => ... 可以写成p => ...

7.15 匿名函数表达式

...

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

( param ) => expr

可以简写为

param => expr

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

【讨论】:

  • 谢谢,感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多