我已经看到了它在其他问题说,LINQ查询语法编译为一个lambda。

那么,为什么你能不能做编辑后继续运行时存在方法的Lambda表达式,同时与查询符号,你可以?

什么是最令人气愤,并认真让我考虑切换到使用查询符号的处处是,即使你的代码是不是在lambda,但在同样的方法在其他地方是拉姆达你不能编辑并继续!这是一样,造成在不知情的开发者无偿的痛苦!

有帮助吗?

解决方案

编辑并继续是能够改变方法实现“活”,但字段中的类型不是什么。

Lambda表达式(和匿名方法)可以最终创建自己的私有类型,当他们捕捉到的变量。改变λ表达式可以改变所涉及的类型,这将破坏编辑并继续。

这听起来像它的应该的可能做出更改代码,没有这个影响,但我怀疑它只是更容易防止它完全 - 这也意味着你不这样做< EM>启动的更改,然后发现你正在通过你的变化阻止了一半。

(个人我不是E&C在首位的风扇,所以我从来没有注意到这一点。)

其他提示

我不知道是肯定的,但我的猜测是围绕搞清楚什么需要时,有参与局部变量被提升到等级改变的复杂性。我猜测,搞清楚什么样的变化将是安全的,什么也不会被视为复杂和容易出错的在这一点上得到正确的。重点围绕线程和新的UI在2010年的工具 - 也许我们会得到它的下一个版本

我不知道这是肯定的,但我认为它与编译器转换形成闭合成编译器生成的类lambda表达式的方式做。可能没有(容易的)方法应用到经编译的代码所作的变更并保持当前状态。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top