77

复制

.NET 中的闭包

C# 中的闭包是什么?

4

1 回答 1

108

C# 中的闭包采用内联委托/匿名方法的形式。闭包附加到其父方法,这意味着可以从匿名方法中引用父方法主体中定义的变量。这里有一篇很棒的博客文章

例子:

public Person FindById(int id)
{
    return this.Find(delegate(Person p)
    {
        return (p.Id == id);
    });
}

您还可以查看Martin FowlerJon Skeet的博客。我相信您将能够从其中至少一个中获得更“深入”的细分......

C# 6 的示例:

public Person FindById(int id)
{
    return this.Find(p => p.Id == id);
}

这相当于

public Person FindById(int id) => this.Find(p => p.Id == id);
于 2009-02-27T16:29:52.787 回答