在VS2015中,如何为自动实现的属性禁用Step Into?

Ste*_*nds 11 c# debugging visual-studio-debugging visual-studio-2015

我刚刚开始使用Visual Studio 2015,发现在调试自动实现的属性时,它与VS2012/VS2013的行为不同.

假设我在类中定义了一个属性:

public int MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)

即.一个自动实现的属性,其中getter和setter由编译器有效生成.

我稍后可能会引用此属性,作为方法调用的一部分,例如:

{
    DoSomeStuff(MyProperty);
}
Run Code Online (Sandbox Code Playgroud)

如果我想调试调用DoSomeStuff并在该行上放置一个断点,然后等待它被命中,F11进入调用,VS2015调试器现在进入getter for MyProperty(在以前的版本中,用于自动实现的属性) ,它会忽略getter和setter).

我发现了一篇博客文章,描述了将自动获取器和设置器上的断点作为新功能的能力,我可以看到在某些情况下这可能有用.但是,在我的情况下,我对断点或步入这些方法不感兴趣,特别是因为我们的代码库有许多自动实现的属性,并且对它们的访问通常是嵌套的(例如DoSomeStuff(X.Y.Z)).

简而言之,是否可以在VS2015中为自动实现的属性禁用新的Step Into行为,如果是,如何?

(我注意到调试选项中的"跳过属性和运算符"复选框,但我不想跨越所有属性getter/setter,只是那些用于自动实现属性的属性.)

Kin*_*tic 10

转到VS2015选项 - >调试 - >常规并勾选"跳过属性和运算符".

  • 我已经将其标记为答案,即使这是一个很核心的问题:不仅要针对自动实现的属性,而且要针对所有属性,都应避免进入。非常烦人的是,没有办法阻止一个而不是另一个,特别是因为这是从早期VS版本开始的行为更改。 (3认同)