3
我已经打了封闭位在C#中,甚至写他们生产规范的应用程序,但是,我还是那个我,这个问题必须是大喊,或者可以只是,通过使用封闭来解决。方案时要使用闭合
闭包对解决问题特别有用有什么问题吗?另外,C#4.0中是否有关闭的问题?
感谢
我已经打了封闭位在C#中,甚至写他们生产规范的应用程序,但是,我还是那个我,这个问题必须是大喊,或者可以只是,通过使用封闭来解决。方案时要使用闭合
闭包对解决问题特别有用有什么问题吗?另外,C#4.0中是否有关闭的问题?
感谢
鉴于闭包是一个编译器的功能,而不是一个平台的功能,没有什么这不能他们来完成。你可以手动编写所有编译器使用的代码(当涉及到表达式树,编译器可以访问某些IL语言没有公开的指令时)。
但是,你会生气而不是在LINQ中使用闭包,你需要访问封闭变量。例如:
public List<Person> FilterByAge(IEnumerable<Person> people, int age)
{
return people.Where(p => p.Age >= age).ToList();
}
即lambda表达式是一个闭合,从委托内访问age
。
至于陷阱:
封闭的任何性能优势?另外,为什么我会生气,不要在LINQ中使用闭包?虽然,我想没有其他真正的方法来访问LINQ中的包含变量的代码示例。 – dotnetdev 2010-12-07 21:59:25