lambda表达式含义
本文关键字:表达式 lambda | 更新日期: 2023-09-27 18:11:29
我创建了一个htmlhelper,它的签名如下:
public static MvcHtmlString PageLinks(this HtmlHelper html,
PagingInfo pagingInfo,Func<int, string> pageUrl)
我看到它是这样通过的:
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
但我不知道这是什么意思?
x => Url.Action("List", new {page = x})
请建议这个lambda表达式的含义
这是一个lambda表达式,它接受一个名为x
的参数,并隐式类型为int
,它用字符串"List"
的一个参数调用Url.Action
,另一个匿名类型的参数具有一个属性page
,其值为参数x
。
从Url.Action
返回的值用作lambda表达式的返回值。
这就是lambda表达式本身在语言构造方面的分解方式。如果你问它在行为方面意味着什么,那就另当别论了——你需要看看你自己的PageLinks
方法,以及Url.Action
的文档。
x => Url.Action("List", new {page = x})
这是一个(lambda(函数,给定一个x
(我们知道x
必须是整数,因为签名是Func<int, string>
(,它返回一个url(字符串(。(从技术上讲,这是一个lambda表达式,但在这种特殊情况下,差异消失了(
你这样使用它:string url = pageUrl(pageNumber);
Url.Action
给出动作List
的url,该动作具有将用x
的值填充的单个参数(可能是类型int
和名称page
(。此参数可能是必须返回的列表的页面。
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new {page = x}))
这将"返回"一个html字符串,其中包含我们之前计算的url的链接。(可能是<a href='url'></a>
之类的(啊。。。这是你的功能:-(
(我认为您正在做这样的事情:ASP.NET MVC分页,用包含当前页面和总页面的PagingInfo
类保留当前查询参数,对吧?(