7

通常、メソッドのどこかにラムダ式が含まれている場合、そのメソッドを編集すると、VisualStudioは次のように表示します。

ラムダ式を含む「メソッド」を変更すると、編集と続行が有効になっている間、デバッグセッションを続行できなくなります。

このエラーを回避する方法はありますか?

私の場合、コンストラクターがを受け入れるクラスがありますAction

Button(Texture2D t2d, Vector2 v2, Action onPress)
...
Button b = new Button(t2d, new Vector2(40, 60), () => { MainStatic.t = t; });

この問題に関する追加情報:

4

1 に答える 1

14

更新:ユーザーからこの機能に対する多くの要求があった後、目的の機能がVisualStudio2015に追加されました。この回答と質問は、現在では古くなっています。


このエラーを回避する方法はありますか?

はい。メソッドからラムダを削除します。または、メソッドを編集しないでください。

メソッドからラムダを削除せずにメソッドを編集せずにこのエラーを回避する方法はありますか?

いいえ。エラーメッセージはあなたに嘘をついていません。

興味があれば、この理由は、ラムダがネストされたクラスのメソッドとしてコンパイルされ、ラムダが閉じるローカル変数がそのクラスのフィールドになるためです。編集して続行する機能は、現在のメソッドを編集しながらその場で書き換えますが、単純な編集でも、ネストされたクラスに複雑な変更を加える可能性があります。このシナリオでE&Cを機能させるために多大な労力を費やし、それによって他のより価値のある機能からリソースを盗むのではなく、デバッガーチームは単にそれを違法にしました。

于 2013-01-06T18:09:52.477 に答える