当方法中有Lambda表达式时,为什么不能编辑并继续调试?

Sha*_*ica 27 c# linq lambda edit-and-continue

我在其他问题中看到它说Linq查询语法编译为Lambda.

那么为什么在方法中有Lambda表达式时你不能进行编辑和继续,而使用查询表示法可以吗?

什么是最令人愤怒的,并且认真地让我考虑切换到在任何地方使用查询表示法,即使你的代码不在Lambda中,但是在同一方法中的其他地方有一个Lambda,你不能编辑并继续!这就像是对粗心的开发人员造成的无端痛苦!

Jon*_*eet 20

编辑和继续能够"实时"更改方法实现,但不能更改类型中的字段.

Lambda表达式(和匿名方法)在捕获变量时最终可能会创建自己的私有类型.更改lambda表达式可以更改所涉及的类型,这将破坏编辑并继续.

听起来应该可以对没有这种影响的代码进行更改,但我怀疑完全防止它更容易 - 这也意味着你不会开始进行更改然后发现你被阻止了改变的一半.

(就个人而言,我首先不是E&C的粉丝,所以我从未注意到它.)

  • 我更喜欢使用单元测试.然后我不需要担心重启 - 这意味着我总是从头到尾使用新代码. (10认同)
  • 谢谢.你为什么不喜欢E&C?你又做了什么? (4认同)