gpt4 book ai didi

c# - 纯粹用于设置断点的微小的伪造代码 stub (不会产生编译器警告)

转载 作者:太空宇宙 更新时间:2023-11-03 21:20:48 26 4
gpt4 key购买 nike

这是一个微不足道的问题,但我发现自己一直在思考这个问题 - 通常在调试时,我想在某行代码执行后立即中断,而不是将断点放在下一行代码(可能是由于较大的注释 block 而下降,或者将其放在代码的最后一行,然后在它中断后按 F10 键进行检查,我有这种冲动要放置一个短的 stub 行,我将在其上设置断点。

在 VBA 中,我会为此使用 DoEvents,我发现在 c# 中最短的东西不会产生烦人的编译器警告(变量“x”已声明但从未使用过)是:

int x = 1; x++;

这是您所能得到的最好的,还是有其他一些我不知道的明显方法?

注意:我知道通过以下方式抑制警告:

#pragma warning disable 0168    // get rid of 'variable is never used warning'

...但偶尔会发现它不起作用。

最佳答案

出于调试目的,我总是使用 System.Diagnostics.Debugger.Break()。实际上,它就像在语句中插入一个断点,但事后更容易确定其功能,并通过用户和系统之间的源代码控制进行维护。它不会弄乱您的断点窗口。它还非常有用,在 Release模式下运行时不会触发,允许您将它们放在至关重要的区域,并在不损害您的客户发布的情况下保留它们。

作为替代建议,根据 InBetween 的评论:

相反,如果您正在寻找一个“无害”的语句,您可以在需要时简单地设置一个断点,Thread.Sleep(0) 应该与您的轶事 VBA 解决方案足够相似,足以满足您的调试目的。

Thread.Sleep(0). This tells the system you want to forfeit the rest of the thread’s timeslice and let another, waiting, thread run.

-- http://blogs.msmvps.com/peterritchie/2007/04/26/thread-sleep-is-a-sign-of-a-poorly-designed-program/

在我看来,与我的第一个建议相比,这是一个不太理想的解决方案,但它可能更符合您的需求。

关于c# - 纯粹用于设置断点的微小的伪造代码 stub (不会产生编译器警告),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30925679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com