什么是“(item)=>”做?

时间:2011-08-16 18:04:43

标签: c#

我正在尝试学习C#和MVC3。我希望将WebGrid列作为Html.Action链接,但是,在我这样做之前它不会起作用:

grid.Column(format: (item) => Html.ActionLink("Edit", "Edit", new { id = item.Id }))

所以我知道这解决了它,但为什么呢? (项目)看起来像一个演员,但是什么是=>对于?从阅读其他问题我发现,出于某种原因这样做显然是不好的 - 为什么?

2 个答案:

答案 0 :(得分:8)

这在C#中称为lambda表达式/匿名函数。 ()部分是参数列表,=>表示右侧是lambda的正文/表达式。

这是一个略微扩展的形式,可能会更清楚

Func<ItemType, string> linkFunction = (item) =>
{
  return Html.ActionLink("Edit", "Edit", new { id = item.Id });
};

答案 1 :(得分:7)

那将是lambda expression。不,使用lambda并不坏,这是一件非常好的事情。

相关问题