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

CJ7*_*CJ7 1 c# debugging visual-studio-2005

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

Dir*_*mar 9

如果要跳过整个方法,可以使用DebuggerStepThrough属性标记它:

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

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

请注意,该属性可防止调试器进入方法或属性,但您始终可以在该方法中放置断点并停止1.

该属性派上用场,特别是当你有这样的代码时:

DoSomething(obj.SomeProperty);
Run Code Online (Sandbox Code Playgroud)

如果您想进入DoSomething并按F11,您将 - 没有属性 - 首先进入SomeProperty然后进入DoSomething.但是,使用该属性,您最终会立即进入该DoSomething方法.

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


And*_*air 5

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

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