首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时使用闭包

何时使用闭包
EN

Stack Overflow用户
提问于 2010-12-07 21:51:29
回答 1查看 396关注 0票数 3

我曾在C#中玩过闭包,甚至在产品规范应用程序中编写过闭包,但是,没有什么能真正对我大喊大叫,说这个问题必须或者只能通过使用闭包来解决。

是否存在闭包对解决问题特别有用的问题?另外,在C# 4.0中是否有闭包?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-07 21:56:53

考虑到闭包是一个编译器特性而不是一个平台特性,所以没有什么是不能用它们完成的。

您可以手工编写编译器使用的所有代码(在涉及表达式树时,除了少数例外,编译器可以访问一些未被该语言公开的IL指令)。

但是,如果在LINQ中不使用闭包,您会非常生气,因为在LINQ中,您需要访问封闭变量。例如:

代码语言:javascript
复制
public List<Person> FilterByAge(IEnumerable<Person> people, int age)
{
    return people.Where(p => p.Age >= age).ToList();
}

该lambda表达式是一个闭包,从委托中访问age

至于问题:

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4381983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档