【发布时间】:2016-08-19 14:10:55
【问题描述】:
我刚开始使用 Visual Studio 2015,发现在调试自动实现的属性时,它的行为与 VS2012/VS2013 不同。
假设我在一个类中定义了一个属性:
public int MyProperty { get; set; }
即。一个自动实现的属性,其中 getter 和 setter 由编译器有效生成。
我稍后可能会引用这个属性,例如作为方法调用的一部分:
{
DoSomeStuff(MyProperty);
}
如果我想调试对DoSomeStuff 的调用并在该行上放置一个断点,然后等待它被命中并按F11 进入调用,VS2015 调试器现在进入MyProperty 的getter(在以前的版本中,对于自动实现的属性,它只会忽略 getter 和 setter)。
我发现 blog post 描述了在自动 getter 和 setter 上放置断点的能力作为一项新功能,我可以看到这在某些情况下可能会有用。但是,就我而言,我对断点或单步执行这些方法不感兴趣,特别是因为我们的代码库有许多自动实现的属性并且对它们的访问通常是嵌套的(例如DoSomeStuff(X.Y.Z))。
简而言之,是否可以在 VS2015 中为自动实现的属性禁用新的 Step Into 行为,如果可以,如何?
(我注意到调试选项中的“跳过属性和运算符”复选框,但我不想跳过所有属性获取器/设置器,只是那些用于自动实现的属性。)
【问题讨论】:
-
通常情况下,最好几乎一直
Step over properties,并且只有在您真正需要调试特定属性代码时才介入。上下文菜单有许多与步进相关的选项。 -
在 Visual Studio 开发者社区中对此问题进行投票。 developercommunity.visualstudio.com/t/…
标签: c# debugging visual-studio-2015 visual-studio-debugging