我不确定如何真正将我的问题用语言表达,所以让我尝试用一个例子来解释它:
假设我的程序在特定操作中遇到了一些奇怪的行为。我已经找到了一些导致这种奇怪行为的代码。禁用此序列时,我不会遇到此行为。不幸的是,我需要这段代码,因为那时其他东西不起作用。
所以,我接下来要做的是弄清楚为什么当代码摘录处于活动状态时会出现不同的情况。
为了更好地理解发生了什么,我有时想运行整个操作,包括“坏代码”,有时不运行。然后我可以比较结果,例如 UI 中发生了什么或我的函数返回什么。
我想到的第一种方法是在启用代码的情况下运行我的程序,做任何我想做的事情,然后停止我的程序,注释掉代码,重新编译并再次运行。嗯……听起来很蠢。特别是如果我再次需要打开该代码以再次查看其他行为,然后再次关闭、打开、关闭等等。
我不能选择使用断点并影响语句顺序或修改值以便我运行或不运行 if 语句、for 循环等。两个例子:
- 我调试了一个时序关键行为,当我停止程序时,时序发生了显着变化。因此,我可以设置的第一个断点必须在动作结束时。1
- 我希望出现一个工具提示或其他窗口,当焦点被赋予 VS 时,它会被“抑制”。因此,我根本不能使用任何断点。无论是在动作的开始还是结束时。1
Visual Studio 2012中是否有任何技术允许我将此代码标记为可选,并且我可以在执行操作之前决定是否要运行此代码序列?我想到if(true|false)
了更高层次的东西。
我不是在寻找需要多次重新运行程序的解决方案。在这种情况下,我仍然可以使用简单的方法来简单地用#if false
.
1请注意,当我需要在某个位置查看特定变量时(如果我没有将值写入输出),我当然可以设置断点,但会再次关闭断点以运行整个操作去。