为什么在“快速监视”窗口中调试时不能使用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),仍然留下了很多复杂性,尤其是捕获的变量,这些变量从根本上重新构造了使用它们的代码(您认为变量成为编译器生成的类中的字段) ),并带有一点烟雾和镜子。

因此,您可以无所事事地使用它们,我丝毫不感到惊讶-有很多支持这种魔术的编译器工作(以及幕后的类型生成)。

关于c# - Visual Studio调试 “quick watch”工具和lambda表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/725499/

10-11 17:59