这是一个微不足道的问题,但发现自己一直在思考它 - 通常在调试时,我想在执行某段代码之后立即中断,而不是将断点放在下一行代码上(可能是由于大的注释阻塞导致的方式下降,或者将它放在最后一行代码上,然后在F10中断之后点击F10来重复它,我有这样的冲动,要设置一个简短的存根线,我将设置断点。
在VBA中,我使用DoEvents,这是c#中最短的事情,我发现它没有创建恼人的编译器警告(变量' x'被声明但从未使用过)是:
int x = 1; x++;
这是否与你能得到的一样好,或者是否有其他明显的方法我不知道?
注意:我知道通过以下方式抑制警告:
#pragma warning disable 0168 // get rid of 'variable is never used warning'
...但发现它偶尔不起作用。
答案 0 :(得分:2)
出于调试目的,我总是使用System.Diagnostics.Debugger.Break()
。在实践中,它就像在语句上插入断点,但在事后更容易确定其功能,并通过用户和系统之间的源控制来维护。它不会使您的断点窗口混乱。它也足够有用,在发布模式下运行时不会触发,允许您将它们放置在至关重要的区域,并在不损害客户版本的情况下保留它们。
作为替代建议,请点击 InBetween 的评论:
相反,如果您正在寻找一个无害的"声明您可以根据需要设置断点,Thread.Sleep(0)应该与您的轶事VBA解决方案足够相似,以满足您的调试目的。
的Thread.Sleep(0)。这告诉系统你要放弃其余的 线程的时间片,让另一个,等待,线程运行。
- http://blogs.msmvps.com/peterritchie/2007/04/26/thread-sleep-is-a-sign-of-a-poorly-designed-program/
在我看来,这是一个不太理想的解决方案,而不是我的第一个建议,但它可能更符合您的需求。
答案 1 :(得分:2)
所以你需要
制作一个什么都不做的功能:
// Call it anywhere, so you can put a breakpoint on the code
public static void DoNothing()
{
// Any code which does nothing here
}
然后叫它:
... some code ...
DoNothing();
... other code ...