What does "(item) =>" do?

本文关键字:quot gt do does What item | 更新日期: 2023-09-27 18:05:40

我正在努力学习c#和mvc。我想有一个WebGrid列作为Html。动作链接,但是,它不会工作,直到我这样做:

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

所以我知道这修复了它,但为什么呢?(项)看起来像强制转换,但是=>的作用是什么?从阅读其他问题中我发现,出于某种原因,这样做显然是不好的——为什么?

What does "(item) =>" do?

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

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

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

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