为什么在“快速监视”窗口中调试时不能使用lambda表达式?
UPD:另请参见
http://blogs.msdn.com/b/jaredpar/archive/2009/08/26/why-no-linq-in-debugger- windows.aspx
http://blogs.msdn.com/b/jaredpar/archive/2010/06/02/why-is-linq-absent-from- debugger-windows- part-2.aspx
Lambda表达式就像匿名方法一样,实际上是非常复杂的野兽。即使我们排除Expression(.NET 3.5),仍然留下了 很多 复杂性,尤其是捕获的变量,这些变量从根本上重新构造了使用它们的代码(您认为变量成为编译器生成的类中的字段) ,有一点烟雾和镜子。
Expression
因此,您可以无所事事地使用它们,我一点也不感到惊讶-有 很多 支持这种魔术的编译器工作(以及幕后的类型生成)。