在VS2015中,如何禁用自动实现属性的步进

本文关键字:实现 属性 步进 何禁用 VS2015 | 更新日期: 2023-09-27 18:03:18

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

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

public int MyProperty { get; set; }

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

我可以在以后的方法调用中引用这个属性,例如:
{
    DoSomeStuff(MyProperty);
}

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

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

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

(我注意到在调试选项中有一个"跳过属性和操作符"复选框,但我不想跳过所有属性getter/setter,只是那些自动实现的属性。)

在VS2015中,如何禁用自动实现属性的步进

进入VS2015 options -> debugging -> general并勾选"Step over properties and operators"

只需将DebuggerStepThrough属性添加到您的函数/类中。

[DebuggerStepThrough]
public class DontDebugInterceptor : IInterceptor
{
    // do something...
}

Visual Studio 2017:

在方法调用行暂停调试器->右键单击该方法-> Step Into Specific ->[从列表中选择您的方法]。

这不是一个配置健壮的解决方案,而是每次您想要输入一个方法并避免属性进入时应该执行的操作。