gpt4 book ai didi

c# - 何时使用闭包的场景

转载 作者:行者123 更新时间:2023-11-30 14:41:17 25 4
gpt4 key购买 nike

我在 C# 中玩过一些闭包,甚至在生产规范的应用程序中编写过它们,但是,没有人真正向我大喊这个问题必须是,或者只能 使用闭包解决。

有没有闭包特别适合解决的问题?另外,C# 4.0 中的闭包有什么问题吗?

谢谢

最佳答案

鉴于闭包是一种编译器特性而不是平台特性,因此没有什么是不能用它们完成的。

您可以手动编写编译器使用的所有代码(好吧,在表达式树方面有一些异常(exception),并且编译器可以访问一些语言未公开的 IL 指令)。

但是,如果您在需要访问封闭变量的 LINQ 中使用闭包,您会很生气。例如:

public List<Person> FilterByAge(IEnumerable<Person> people, int age)
{
return people.Where(p => p.Age >= age).ToList();
}

那个 lambda 表达式是一个闭包,从委托(delegate)中访问 age

至于陷阱:

关于c# - 何时使用闭包的场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4381983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com