繁体   English   中英

VS2005:单步执行C#代码时,是否可以跳过代码部分?

[英]VS2005: when stepping through C# code, is there way to skip through sections of code?

单步执行代码时可以跳过某些部分吗? 当调试器跳转到属性get和set时,我觉得这特别烦人。 有办法避免这种情况吗?

如果要跳过整个方法,则可以使用DebuggerStepThrough属性对其进行标记:

[DebuggerStepThrough]
public void SomeMethod()
{
    // lots of code...
}

public int SomeProperty
{
    [DebuggerStepThrough] 
    get { return ComplexLogicConvertedToMethod(); } 
    [DebuggerStepThrough]      
    set { this.quantity = value ; }
}

请注意,该属性阻止调试器进入方法或属性,但是您始终可以在该方法中放置一个断点,然后在此处停止1

该属性非常有用,尤其是当您具有以下代码时:

DoSomething(obj.SomeProperty);

如果要进入DoSomething ,然后按F11键,将在没有属性的情况下首先进入SomeProperty ,然后进入DoSomething 但是,有了该属性,您将立即陷入DoSomething方法中。

1 如果要完全阻止用户将断点放入方法中,则可以使用DebuggerHiddenAttribute

可以选择“ Step over properties and operators (Managed only)

或使用F10而不是F11(具有默认键盘绑定)

是的,有一个跨步(F10)功能和一个跨步至(F11)。

您可以使用“运行至光标”设置一个断点。

使用F10时,除非您在更深的层次上设置了断点,否则代码仅会跳过每个语句。 我从来没有发现调试器小姐会像您建议的那样表现,请记住,我只使用VS2008。

您可以在不需要的任何方法/属性上设置DebuggerStepThroughAttribute属性。

您也可以使用“ Step Over”而不是“ Step Into”命令。

DebuggerStepThrough属性添加到您的属性:

[DebuggerStepThrough]
private static void DO() {
  Console.WriteLine("test");
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM