有人能解释一下C#中的"Func"是什么吗?

15 浏览
0 Comments

有人能解释一下C#中的"Func"是什么吗?

我正在阅读《Pro MVC 2》这本书,书中有一个示例,展示了如何为HtmlHelper类创建一个扩展方法。

这是示例代码:

public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func pageUrl)
{
    //在这里进行一些魔法操作。
}

这是一个使用示例:

[Test]
public void Can_Generate_Links_To_Other_Pages()
{
    //准备:我们将扩展Html helper类。
    //使用的变量是否为null并不重要            
    HtmlHelper html = null;
    PagingInfo pagingInfo = PagingInfo(){
        CurrentPage = 2,
        TotalItems = 28,
        ItemsPerPage = 10
    };
    Func pageUrl = i => "Page" + i;
    //执行:这里是它应该如何格式化链接。
    MvcHtmlString result = html.PageLinks(pagingInfo, pageUrl);
    //断言:
    result.ToString().ShouldEqual(@"123")           
}

编辑:删除了让这个问题混淆的部分。

问题是:为什么示例中使用了Func?我应该在什么时候使用它?Func是什么?谢谢!

0