use*_*322 5 c# debugging lambda
通常,当方法在其中的某处包含lambda表达式时,如果编辑该方法,Visual Studio将说:
修改包含lambda表达式的"方法"将阻止在启用"编辑和继续"时继续调试会话.
有没有办法避免这个错误?
在我的例子中,我有一个类,其构造函数接受一个Action.
Button(Texture2D t2d, Vector2 v2, Action onPress)
...
Button b = new Button(t2d, new Vector2(40, 60), () => { MainStatic.t = t; });
Run Code Online (Sandbox Code Playgroud)
有关此问题的其他信息:
Eri*_*ert 12
更新:在用户对此功能的许多请求之后,在Visual Studio 2015中添加了所需的功能.这个答案和问题现在已经过时了.
有没有办法避免这个错误?
是.从方法中删除lambda.或者,不要编辑方法.
有没有办法避免这个错误,而不从方法中删除lambda并仍在编辑方法?
号错误消息不骗你.
如果您感到好奇,原因是因为lambdas被编译为嵌套类的方法,而lambda关闭的局部变量将成为该类的字段.编辑并继续功能会在您编辑时动态重写当前方法,但即使是简单的编辑也可能导致对这些嵌套类的复杂更改.而不是花费大量精力使E&C为这种情况工作,从而从其他更有价值的功能中窃取资源,调试器团队只是将其视为非法.
| 归档时间: |
|
| 查看次数: |
8975 次 |
| 最近记录: |