避免使用c#

中的一段代码进行调试和调用 在Delphi中,编译器指令{$ d-}和{$ l-}允许您有效地避免为已定义的代码段生成调试和局部变量信息。 在实际的问题中,它具有从调试视图中“隐藏”代码的效果,它不会出现在调用堆栈中,并且在调试时不会进入它。 有没有办法在使用VS 2008的c#中实现相同的结果? 注意:原因是我们有一个稳定的框架,不需要调试,但往往会搞乱调用堆栈和标准调试流程。     
已邀请:
我使用DebuggerNonUserCodeAttribute,这样你默认不会破坏或进入代码;但是,对DebuggerStepThrough的好处是,您可以转到Options-> Debugger-> Just My Code设置,并允许打破/调试您标记的代码。如果您遇到问题,这会有很大帮助。我通常在整个课程上使用它。 顺便说一下,调用堆栈会自动隐藏用这个属性标记的非用户代码:) 当然,您只需右键单击调用堆栈窗口并切换“显示外部代码”以隐藏/显示缺少的堆栈信息。     
我想你想要
DebuggerStepThrough
属性:
DebuggerStepThrough
指示调试器逐步执行代码而不是单步执行代码。
[DebuggerStepThrough]
public void MyMethod()
{

}
这对于s​​etter / getter特别有用,因为调试通常只会增加噪声(例如来自msdn):
public int Quantity
{ 
    [DebuggerStepThrough] 
    get { return ComplexLogicConvertedToMethod(); } 
    [DebuggerStepThrough]      
    set { this.quantity = value ; }
}
    
或者跳过代码的特定部分:
... some production code
#if DEBUG
    Console.WriteLine("Debug version");
#endif
... some more production code
    

要回复问题请先登录注册