"(item)=>"有什么作用?

Ben*_*nGC 3 c#

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

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

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

Jar*_*Par 8

这在C#中称为lambda表达式/匿名函数.该()部分是参数列表,并且=>表示右侧是lambda的主体/表达式.

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

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


Cla*_*sen 7

这将是一个lambda表达式.不,使用lambda并不坏,这是一件非常好的事情.