我刚刚开始使用Visual Studio 2015,发现在调试自动实现的属性时,它与VS2012 / VS2013的行为不同。
假设我在类中定义了一个属性:
public int MyProperty { get; set; }
即。一个自动实现的属性,其中getter和setter由编译器有效生成。
稍后我可以引用此属性,作为方法调用的一部分,例如:
{
DoSomeStuff(MyProperty);
}
如果我想调试DoSomeStuff
的调用并在该行上设置一个断点,然后等待它被命中,F11进入调用,VS2015调试器现在进入{{getter}的getter 1}}(在以前的版本中,对于自动实现的属性,它只会忽略getter和setter)。
我找到了一个blog post,它描述了在自动吸气器上放置断点的能力。 setter作为一个新功能,我可以看到在某些情况下这可能有用。但是,在我的情况下,我对破坏或踩到这些方法不感兴趣,特别是因为我们的代码库有许多自动实现的属性,并且对它们的访问通常是嵌套的(例如。MyProperty
)。
简而言之,是否可以在VS2015中为自动实现的属性禁用新的Step Into行为,如果是,如何?
(我注意到调试选项中的“跳过属性和运算符”复选框,但我不想跨越所有属性getter / setter,只是那些用于自动实现属性的属性。)
答案 0 :(得分:8)
转到VS2015选项 - >调试 - > general and tick"跳过属性和运算符"。
答案 1 :(得分:0)
只需将DebuggerStepThrough属性添加到您的函数/类..
[DebuggerStepThrough]
public class DontDebugInterceptor : IInterceptor
{
// do something...
}
答案 2 :(得分:0)
在Visual Studio 2017中:
在方法调用的行上暂停调试器->右键单击方法->具体步骤-> [从列表中选择方法]。
这不是一个配置可靠的解决方案,而是您每次想输入一个方法并避免属性介入的操作。