Using/abusing 操作值的条件断点

Using/abusing a conditional breakpoint to manipulate a value

作为临时解决方法,我必须在某行中将 User.ID 设置为 0。类似情况我常用的做法是在对应行下断点,用watch操作值:

User.ID = 0

为了通过自动设置值来简化这一点,我想出了一个条件断点:

Convert.ToBoolean(User.ID = 0)

由于此表达式的计算结果为假,代码执行不会停止,作为副作用 User.ID 将设置为 0。事实证明,此副作用不会发生。我确信这是设计使然。 不过,完全相同的代码在手表中按预期工作。我的问题:

我的问题好像是相关的:

这个错误(在我看来,调试器不应允许断点条件的副作用)似乎已在 VS2013 中得到修复。

如果你想要那个副作用,你必须改变设置:

  • 工具 + 选项
  • 调试
  • 一般 --> "Use Managed Compatibility Mode" 复选框

勾选那个,你应该得到旧的行为。我在2010年,所以我无法测试它。但我相信这一点。