条件 C# 断点?
Posted
技术标签:
【中文标题】条件 C# 断点?【英文标题】:Conditional C# breakpoint? 【发布时间】:2012-07-02 16:18:01 【问题描述】:我正在调试一个 foreach
循环,该循环将迭代超过 1000 次 - 所以我只希望循环内的断点为特定项目中断。
所以...
foreach(Employee employee in employees)
//DO SOMETHING
//BREAK HERE WHEN employee.Id == '2342'
//DO SOMETHING ELSE
我是否必须在其中编写 If
语句和一些虚拟代码并以这种方式破坏它?只有这样吗?
【问题讨论】:
【参考方案1】:if (employee.Id == '2342') Debugger.Break();
或者,您可以在 VS 中设置条件断点,但根据我的经验,这非常慢。
【讨论】:
【参考方案2】:如果您使用的不是 VS 的 express 版本,请右键单击断点并单击设置条件。
我个人会使用这种方法,因为我认为修改代码以进行调试是不好的做法。
否则你就不得不按照自己的方式去做。
【讨论】:
【参考方案3】:只是添加到以前的答案。 使用条件断点。
您可以像下面这样指定条件
【讨论】:
迭代次数 > 1000 次,leppie 的答案更好。虽然您必须编辑代码来执行此操作,但它要快得多。 ***.com/a/11290503/282143【参考方案4】:通过 UI 使用带有条件断点的 VS 调试器。
最简单和最快方式imo。
The Ultimate Visual Studio Tips and Tricks Blog
【讨论】:
这是非常主观的。就我个人而言,我每天都在使用它们,并且发现比用一些临时的东西“弄脏”我的代码要快得多。如果我可以避免在生产代码中编写 DEBUG 代码,我会这样做。 @leppie 我不知道,如果您的记录超过几百万条,值得考虑 - 谢谢! @Tigran:在一些对性能敏感的代码或大量调用的方法上尝试一下。去煮点咖啡,希望断点已经命中。 可能是它会执行更快,但是,我个人还是会这样做只有如果有不能这样做,或者以某种方式从 UI 中打扰我。因为不喜欢在我的代码中添加调试内容。当我说更快时,我的意思不是调试器执行,而是断点设置。【参考方案5】:您可以在 Visual Studio 中使用条件断点。
右键单击断点并选择条件,然后放入您的子句。
【讨论】:
以上是关于条件 C# 断点?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2010 C# 调试器不会在新断点处停止