VS2005:当单步执行C#代码时,有没有办法跳过代码段?

时间:2010-07-16 08:48:13

标签: c# debugging visual-studio-2005

在单步执行代码时,可以做些什么来跳过代码部分?当调试器跳转到属性获取和设置时,我发现这特别烦人。有办法避免这个吗?

7 个答案:

答案 0 :(得分:9)

如果您想跳过整个方法,可以使用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

答案 1 :(得分:5)

有一个选项Step over properties and operators (Managed only)

或使用F10代替F11(使用默认键盘绑定)

答案 2 :(得分:1)

是的,有一个步骤(F10)功能,以及步入(F11)。

答案 3 :(得分:0)

您可以使用“run to cursor”一次断点。

答案 4 :(得分:0)

当您使用F10时,除非您在更深层次设置断点,否则代码只会跨越每个语句。我从来没有发现调试器未命中的行为与你建议的方式有关,请注意,我只使用VS2008。

答案 5 :(得分:0)

您可以在不想进入的任何方法/属性上设置属性DebuggerStepThroughAttribute

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

答案 6 :(得分:0)

DebuggerStepThrough 属性添加到您的媒体资源中:

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