C# foreach调试太详细了
首先为标题道歉,在简短的总结中描述这个问题有点困难 在VisualStudio2008中调试C#代码时,我注意到在C# foreach调试太详细了,c#,debugging,visual-studio-2008,C#,Debugging,Visual Studio 2008,首先为标题道歉,在简短的总结中描述这个问题有点困难 在VisualStudio2008中调试C#代码时,我注意到在foreach循环中按F10(单步执行)会导致调试器在foreach中的几乎每个关键字处停止。例如: foreach( int foo in fooList ) foreach(Item item in collection) { // <- Breakpoint here for the start of each iteration // Do some
foreach
循环中按F10(单步执行)会导致调试器在foreach
中的几乎每个关键字处停止。例如:
foreach( int foo in fooList )
foreach(Item item in collection)
{ // <- Breakpoint here for the start of each iteration
// Do some work here.
} // <- Breakpoint here for the end of each iteration
如果我的断点设置为此行,按F10后,它将高亮显示
int foo
,然后F10再次高亮显示dublist
,然后F10再次高亮显示in
。最后,在按F10大约4次后,它会进入foreach
中的第一行代码。这真的很烦人,我希望按下F10会跳过“代码”>一个镜头中的Furace行(就像它在调试C++循环时所做的那样)。有没有办法在VisualStudio中配置它,还是必须使用它-(在foreach内部添加断点并使用F5在foreach内部添加断点并使用F5您可以向开始和结束大括号添加断点,这是我通常做的
例如:
foreach( int foo in fooList )
foreach(Item item in collection)
{ // <- Breakpoint here for the start of each iteration
// Do some work here.
} // <- Breakpoint here for the end of each iteration
foreach(集合中的项目)
{/您可以在开始和结束大括号中添加断点,这是我通常做的
例如:
foreach( int foo in fooList )
foreach(Item item in collection)
{ // <- Breakpoint here for the start of each iteration
// Do some work here.
} // <- Breakpoint here for the end of each iteration
foreach(集合中的项目)
{/以下是Visual Studio中的以下快捷键(默认值,如果需要可以更改):
- F11-单步执行-每次执行一条语句,然后执行函数调用(单步执行)
- F10-单步执行-执行下一行代码,但不跟踪任何函数调用的执行(单步执行)
- Shift+F11-跳出-执行当前执行点所在函数的剩余行(跳出)
- F5-继续-运行应用程序。如果有任何附加断点,应用程序将自然在该点停止。因此,如果此断点位于foreach循环中,则每次执行该循环时都会停止
这里有一个包含所有调试器快捷键代码的有用链接:以下是Visual Studio中的以下快捷键(默认值,如果需要可以更改):
- F11-单步执行-每次执行一条语句,然后执行函数调用(单步执行)
- F10-单步执行-执行下一行代码,但不跟踪任何函数调用的执行(单步执行)
- Shift+F11-跳出-执行当前执行点所在函数的剩余行(跳出)
- F5-继续-运行应用程序。如果有任何附加断点,应用程序将自然在该点停止。因此,如果此断点位于foreach循环中,则每次执行该循环时都会停止
这里有一个关于所有调试器快捷方式代码的有用链接:在循环体中设置一个断点,然后点击F5。顺便说一句,它在生成对MoveNext()
和Current
@SLaks的调用时停止。显然,我已经想到了第二个断点的想法,但更喜欢使用一个开关来禁用“detailed”foreach inspection!在循环体中设置一个断点,然后点击F5。顺便说一句,它在生成对MoveNext()
和Current
@SLaks的调用时停止。很明显,我已经想到了第二个断点的想法,但更愿意使用一个切换来禁用“detailed”foreach inspection!询问者正在调试选项中寻找一个设置,以更改调试器在循环中的移动方式,而不是调试器键盘快捷键列表。询问者不了解调试工具,因此我给出了一个快速列表,以便他们知道按F5可以做什么,按F10可以做什么,之前他们做了什么,是ac实际操作。询问者在调试选项中寻找一个设置,以更改调试器在循环中的移动方式,而不是调试器键盘快捷键列表。询问者不了解调试工具,因此我给出了一个快速列表,以便他们知道按F5键对他们有什么作用,按F10键对他们有什么作用,他们以前所做的事情实际上是什么正在做。将此标记为答案,因为它非常详细。我喜欢将断点放在开始大括号上的想法。谢谢!!将此标记为答案,因为它非常详细。我喜欢将断点放在开始大括号上的想法。谢谢!!